【发布时间】:2015-12-17 10:33:31
【问题描述】:
我有一个 WSO2 ESB (4.8.1) 代理 PA,它调用另一个 ESB 代理 PB(具有已发布的 WSDL)。当我从 SoapUI 调用 PB 代理中的 SomeOperation 操作时,它正常工作:我得到了预期的响应,并且它根据 WSDL 模式进行验证。
我需要从 PA 调用 PB,因此我使用有效负载工厂构建了相应的消息体,使用 SomeOperation 值设置 Action 标头(因为在 WSDL 中定义了操作),并将调用中介与相应的端点一起使用。我得到的是一个故障体,带有以下错误消息:
The endpoint reference (EPR) for the Operation not found is /services/SomeOperation and the WSA Action = urn:mediate. If this EPR was previously reachable, please contact the server administrator.
但是,如果我只是简单地编辑 PA 中定义的端点,以便在服务 url 的末尾连接 /SomeOperation,那么它会起作用。
如果没有此解决方法,是否可以解决此问题?为什么会发生这种情况?我现在一些有类似错误的帖子建议设置 Action 标头,但我实际上是在设置它。
编辑:根据 Jean-Michel 的第一个回答,这似乎已解决。
更多细节:我观察到 PB wsdl 中只有 SOAP12 绑定...无论如何,PB 执行基于 Action 属性的操作切换。
案例:PB(未修改),PA 与 soap11 格式 EP
成功了!
案例:PB(未修改),PA 与 soap12 格式 EP
找不到操作的端点引用 (EPR) 是 /services/PBService 并且 WSA 操作 = null。
案例:PB(disableOperationValidation),PA 带soap11 格式EP
成功了!
案例:PB(disableOperationValidation),PA 用soap12格式EP
org.apache.axis2.AxisFault:传入消息的输入流为空。
我不完全了解发生了什么,但我想我会尝试坚持使用 soap 1.1。
【问题讨论】:
标签: web-services proxy wsdl wso2 wso2esb