错误调用 ESB 代理操作(未找到操作的 EPR)

fault calling ESB proxy operation (EPR for the operation not found)

我有一个 WSO2 ESB (4.8.1) 代理 PA,它调用另一个 ESB 代理 PB(它有一个已发布的 WSDL)。当我从 SoapUI 调用 PB 代理中的 SomeOperation 操作时,它正常工作:我得到预期的响应并根据 WSDL 模式进行验证。

我需要从 PA 调用 PB,所以我用 payload factory 构建相应的消息 body,用 SomeOperation 值设置 Action header(因为动作是在 WSDL 中定义的),并将调用调解器与相应的端点一起使用。我得到的是错误 body,错误消息如下:

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 中定义的端点,以便在服务结束时连接 /SomeOperation url,那么它就可以工作了。

如果没有此解决方法,是否可以解决此问题?为什么会这样?我现在一些类似错误的帖子建议设置Action header,但我实际上正在设置它。

编辑:根据Jean-Michel的第一个答案,似乎已解决。

进一步的细节:我观察到PB wsdl中只有SOAP12绑定...无论如何,PB根据Action执行操作切换属性。

案例:PB(未修改),PA with soap11 format EP

有效!

案例:PB(未修改),PA with soap12 format EP

未找到操作的端点引用 (EPR) 是 /services/PBService 并且 WSA 操作 = null。

案例:PB (disableOperationValidation), PA with soap11 format EP

有效!

案例:PB (disableOperationValidation), PA with soap12 format EP

org.apache.axis2.AxisFault: 传入消息的输入流为空。

我不完全明白发生了什么,但我想我会尽量坚持使用 soap 1.1。

尝试在代理 def (PB) 中设置此参数:

<parameter name="disableOperationValidation" locked="false">true</parameter>

编辑您的端点并设置适当的格式(soap11 或 soap12)