我在 linux 下的 Websphere 容器中部署了一个 WS 客户端,它成功调用了由不同应用程序发布的 WebService(我使用了 CXF 实现)。当我在 Windows 下的 Tomcat 容器中尝试相同的客户端时,它的行为会有所不同:wireshark 捕获显示:
- 在调用 web 服务调用之前,我的客户端从 URL A 的服务器请求 WSDL
- 服务器将客户端重定向到不同的 URL B
- 客户端从 URL B 获取 WSDL。
- 由于 WSDL 引用了 XSD 文件,因此客户端从 URL B 请求 XSD,假设重定向也适用于 XSD 文件
- 服务器响应未找到错误,通信失败
我的问题是:
- A) 客户端怎么会假设 XSD 位于 URL B,但它实际上位于 URL A?
- B) 为什么同一个客户端在 Linux 下的 Websphere 上运行时不要求 WSDL,而在 Windows 下的 Tomcat 上运行时却要求 WSDL?有什么方法可以阻止它请求 WSDL 从而避免重定向问题?
非常感谢提前!!!