【问题标题】:Publish Jax-WS Webservice under specified Path在指定路径下发布 Jax-WS Webservice
【发布时间】:2014-02-24 16:21:20
【问题描述】:

我正在 Glassfish 4 应用服务器中开发 SOAP Web 服务。 SOAP 服务本身正在运行,但我想在指定的上下文或路径下发布它。但我找不到任何解决方案如何做到这一点。

这是我的服务:

@WebService(
    serviceName = "HelloPersonService",
    targetNamespace = "http://example.nl/hellopersonservice/1.0",
    portName = "HelloPersonServicePort",
    wsdlLocation = "WEB-INF/wsdl/my.wsdl",
    endpointInterface="my.HelloPersonServicePortType")
public class HelloPersonServiceImpl
    implements HelloPersonServicePortType {

    @Override
    public HelloPersonServiceResponseType greetPerson(HelloPersonServiceRequestType helloPersonServiceRequest) {
       return null;
    }

}

在此网址下提供服务的那一刻:

/webservice/HelloPersonService

但我想将其移至:

/webservice/collection/HelloPersonService

你知道怎么做吗?

非常感谢, 有

【问题讨论】:

  • 您可以在 web.xml 中更改您的上下文根
  • @JakubHr 这与上下文根无关。请参阅我的帖子“/%context%/%path%/%service%”。

标签: java web-services soap jax-ws


【解决方案1】:

我终于可以管理它来配置网络服务的路径。这可以通过添加 jax-ws 部署描述符“sun-jaxws.xml”来实现。

可以为每个服务添加一个名为“url-pattern”的参数。

@Dubas 感谢您的帮助。您的提示指向了正确的方向。

【讨论】:

    【解决方案2】:

    如果您使用的是 JAX-WS servlet,请更改 servlet 路径以指向所需的路径。

    如果您使用自动 JAX-WS 生成(如 Websphere 7),您应该尝试将 serviceName = "HelloPersonService" 更改为 serviceName = "collection/HelloPersonService"

    更多关于 servlet 的信息:Change JAX-WS Service URL

    【讨论】:

    • 感谢您的回答,但编辑 serviceName 不起作用。应用程序服务器抛出异常,这不是一个有效的服务名称。您发布的页面上的信息确实适用于 glassfish。但我会尝试编辑 Jax-Ws Servlet 配置。我希望我能找到一些东西。
    【解决方案3】:

    在您的发布者类中, 您可以根据需要更改已发布的端点 URL。

    Endpoint.publish("http://localhost:8888/webservice/HelloPersonService", new HelloPersonServiceImpl());
    
     Endpoint.publish("http://localhost:8888/webservice/collection/HelloPersonService", new HelloPersonServiceImpl());
    

    【讨论】:

    • 我设法以您在独立应用程序中描述的方式发布端点,但不是在 Web 上下文中。您能告诉我如何在应用程序服务器中执行此操作吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    相关资源
    最近更新 更多