5

创建 JAX-WS Web 服务时是否可以更改 Web 服务 URL?

自动 URL 是(在 Glassfish 3 上):,http://<host>/<context>/<Servicename>但我需要的是:(http://<host>/<context>/axis/services/<Servicename>因为它是从轴到 JAX-WS 的端口)

有没有办法告诉 JAX-WS 在哪里发布 WS?

不能使用 sun-jaxws.xml,因为它会禁用 @EJB/@Inject DI。

4

2 回答 2

3

您可以为您的 JAX-WS 实现类指定 servlet 映射。默认情况下,不需要 servlet 映射,JAX-WS 框架会为您生成它。由于您想为您的 Web 服务服务提供自定义 URL 映射,您可以提供带有自定义 URL 的 servlet 映射。

样本:

<servlet>
    <display-name>CalculatorService</display-name>
    <servlet-name>CalculatorService</servlet-name>
    <servlet-class>
        org.apache.geronimo.samples.jws.CalculatorService
    </servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>CalculatorService</servlet-name>
    <url-pattern>/axis/services/calculator</url-pattern>
</servlet-mapping>

参考https://geronimo.apache.org/GMOxDOC20/simple-web-service-with-jax-ws.htmlhttp://pic.dhe.ibm.com/infocenter/wasinfo/v8r0/index.jsp?主题=%2Fcom.ibm.websphere.express.doc%2Finfo%2Fexp%2Fae%2Ftwbs_customwebxml.html

于 2013-07-19T06:55:35.427 回答
1

我在相同的上下文中遇到了同样的问题。一些要传入 JAX-WS 的axis2 web 服务;所以我必须保持相同的 url 映射(http://[host]:[port]/[context]/services/[serviceName])。

起初,我尝试在 WS 的 impl 类上使用带有 url 模式的 @WebServlet 注释。它适用于 JBoss AS 7.1 和 Weblogic Server 12,但 WebSphere AS 8 不喜欢。这是因为 HttpServlet 类没有扩展,但如果你通过 web.xml 做了同样的事情,它就可以工作。

在 web.xml 中添加一项 Web 服务:

<servlet>
    <servlet-name>OMInjector</servlet-name>
    <servlet-class>fr.fmoisson.kijq.services.OMInjector</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>OMInjector</servlet-name>
    <url-pattern>/services/OMInjector</url-pattern>
</servlet-mapping>
于 2013-08-03T12:52:19.067 回答