【发布时间】:2019-04-20 14:06:00
【问题描述】:
我遇到了 Apache Camel 的问题。
我做了两个 SOAP WebServices。首先(我将其称为 A )是一个标准代理,它调用 WebServices B 来完成所有工作(从数据库获取数据、解析响应等)。
正如我所料,它工作得很好。我通过 SoapUI 向 A 发送数据,A 正在向 B 发送请求,B 从数据库中获取数据,解析响应,将其发送给 A,A 正在向 Soap UI 发送响应。完美...直到一切都在 http 上运行。
当我在部署了 WebService A 的 JbossFuse 上打开 ssl 时,我能够通过 SoapUI 向 Webservice A 发送请求,A 正在向 B 发送请求,B 正在发送响应,A 正在获得响应(我在日志中看到它),并且......没有更多的事情发生。 SoapUI 获取 SocketTimeoutException:读取超时。
看起来 WebService A 不知道应该在哪里发送响应。日志中没有特别发生,0 个异常。可能我忘记了一件事,我不知道是什么。 我使用的 Jboss 是旧的 6.1.0.redhat-379。
有人知道我可以做什么/我可以检查哪些内容可以帮助我解决问题?
【问题讨论】:
-
你能用服务 A 的 https url 获取 wsdl 吗?
-
当然,我可以从 https 获取 wsdl。我认为问题在于调用 web 服务 B,当我关闭调用 B(只是在代码中对其进行评论)时,我得到了从 A 到 SoapUI 的响应。它看起来像调用 B 导致覆盖 A 的 SOAP 标头(或地址中的某些东西)并且 A 无法发送响应。我尝试了很多东西,结果都一样。
-
服务 B 也是 https 吗?并部署在同一台服务器上?
-
B 是 http,它位于单独的服务器上。我在两个 Jboss Fuse 实例上本地测试它。 A部署的服务器开启了ssl,而服务器B没有开启ssl,这种情况也是可见的。
-
http -> https 端点之间的通信通常需要在密钥库中正确安装证书,您是否在任何地方看到任何 PKIX 错误?
标签: web-services ssl apache-camel cxf jbossfuse