在创建JAX服务时,是否有可能更改webservice URL?
自动URL是(在Glassfish 3上):http://<host>/<context>/<Servicename>
,但我需要的是:http://<host>/<context>/axis/services/<Servicename>
(因为它是从轴到JAX的端口)。
有没有办法告诉JAX-WS在哪里发布WS??
使用sun-jaxws.xml是没有选择的,因为它禁用@EJB/@Inject。
发布于 2013-07-18 22:55:35
您可以为JAX实现类指定servlet映射。默认情况下,不需要servlet映射,JAX框架将为您生成该映射。由于您希望为您的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.html和customwebxml.html。
发布于 2013-08-03 04:52:19
同样的情况下我也遇到了同样的问题。一些axis2 web服务要在JAX中传递;因此我不得不保留相同的url映射(http://[host]:[port]/[context]/services/[serviceName])。
首先,我尝试在WS的impl类上使用带有url模式的@WebServlet注释。它在JBoss为7.1和Weblogic 12上工作,但WebSphere作为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>
https://stackoverflow.com/questions/17680661
复制