我有一个WSO2 ESB(4.8.1)代理PA,它调用另一个ESB代理PB(具有已发布的WSDL)。当我从SoapUI调用PB代理中的SomeOperation操作时,它只是起作用:我得到了预期的响应,并且它根据WSDL模式进行了验证。
我需要从PA调用PB,因此我使用有效负载工厂构建相应的消息体,使用SomeOperation值设置Action头(因为操作在WSDL中定义),并使用带有相应端点的call mediator。我得到的是一个错误体,出现以下错误信息:
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
未找到Operation的端点引用(EPR)是/ services / PBService,WSA Action = null。
案例:PB(disableOperationValidation),PA与soap11格式EP
有效!
案例:PB(disableOperationValidation),PA为soap12格式EP
org.apache.axis2.AxisFault:传入消息的输入流为空。
我不能完全了解正在发生的事情,但我想我会尝试坚持使用肥皂1.1。
答案 0 :(得分:2)
尝试在代理def(PB)中设置此参数:
<parameter name="disableOperationValidation" locked="false">true</parameter>
编辑端点并设置适当的格式(soap11或soap12)