是否可以在Web上下文的启动时启动JAXWS servlet,以便WSDL也可以访问?
我在application.xml中定义的上下文根是/myapp/webservice/v1
(最后一部分应该在部署描述符中可配置,并且Web服务应该在Web上下文根目录中可用)。
我试过了:
<servlet>
<display-name>WebService</display-name>
<servlet-name>WebService</servlet-name>
<servlet-class>my.package.WebServiceServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>WebService</servlet-name>
<url-pattern></url-pattern>
</servlet-mapping>
WebService在地址/myapp/webservice/v1
下回答,但是当我键入/myapp/webservice/v1?wsdl
时,它被转换为/myapp/webservice/v1/?wsdl
,它不返回WSDL,但它尝试调用WebService本身,回答:“你好!这是一个Axis2 Web服务!” (GET到WebService时的标准问候语。)
我也试过过url pattern'。'。不接受''和'/ '(WebSphere)。
当我使用
时 <url-pattern>ws</url-pattern>
和
<welcome-file-list>
<welcome-file>ws</welcome-file>
</welcome-file-list>
Web服务正常运行,但WSDL仅在/myapp/webservice/v1/ws?wsdl
上可用,这使得该解决方案与现有客户端不兼容。
背后的原因是将版本创建为单独的WAR,然后可以单独或在EAR中部署,并使WebService地址完全可配置,我们需要在Web模块的上下文根目录下访问它。
我不知道我们遇到的问题是特定于WebSphere还是特定于轴......