我的 Web 服务模块由具有不同客户端的多个客户访问,因此应该可以通过不同的 URI 访问,例如
[serverAddress]/MyHTTPRouter/PingService
和
[serverAddress]/MyHTTPRouter/cet/PingService
(将 [serverAddress] 替换为 myorg.com 或 localhost...抱歉,但 StackOverflow 目前将我限制为两个链接(即使http://localhost也很重要))
所以,我想在我的 web.xml 中定义 2 个 servlet 映射。在 StackOverflow 上,我发现了以下提示: a) Servlet web.xml servlet-mapping b) web.xml 中的 Servlet url 映射如何使用?
我做了以下尝试:
尝试#1:
<servlet>
<servlet-name>myorg.PingServiceImpl</servlet-name>
<servlet-class>com.ibm.ws.websvcs.transport.http.WASAxis2Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myorg.PingServiceImpl</servlet-name>
<url-pattern>/cet/PingService</url-pattern>
<url-pattern>/PingService</url-pattern>
</servlet-mapping>
使用 SoapUI 的测试结果:
- [服务器地址]/MyHTTPRouter/PingService:好的
- [serverAddress]/MyHTTPRouter/cet/PingService:错误 404:java.io.FileNotFoundException:WSWS7147E:系统找不到 /cet/PingService 的端点。
尝试#2:
<servlet>
<servlet-name>myorg.PingServiceImpl</servlet-name>
<servlet-class>com.ibm.ws.websvcs.transport.http.WASAxis2Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myorg.PingServiceImpl</servlet-name>
<url-pattern>/PingService</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>myorg.PingServiceImpl</servlet-name>
<url-pattern>/cet/PingService</url-pattern>
</servlet-mapping>
使用 SoapUI 的测试结果:
- [serverAddress]/MyHTTPRouter/PingService: 错误 500:javax.servlet.ServletException:com.ibm.ws.websvcs.exception.ConfigurationException:无法在 Axis servlet 中检索模块的配置上下文:MyHTTPRouter
- [serverAddress]/MyHTTPRouter/cet/PingService :同上(错误 500)
我们谈论的是在 IBM Websphere Application Server 8.5 上运行的 EJB 3.1 应用程序。有什么想法为什么 #1 和 #2 都不起作用以及我需要做哪些更改才能使用 /cet/PingService 和 /PingService 访问 Web 服务?