0

是否可以在 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 在 address 下回答/myapp/webservice/v1,但是当我输入 时/myapp/webservice/v1?wsdl,它被转换为/myapp/webservice/v1/?wsdl,它不返回 WSDL,但它尝试调用 WebService 本身,它回答:“你好!这是一个 Axis2 Web 服务!” (对 WebService 进行 GET 时的标准问候语)。

我也尝试过使用 url 模式“。”。' ' 和 '/ ' 不被接受 (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 Module 的上下文根下可访问。

我不知道我们遇到的问题是特定于 WebSphere 还是特定于 Axis...

4

0 回答 0