Web services 调用ESB代理操作时出错(找不到操作的EPR)
我有一个WSO2 ESB(4.8.1)代理PA,它调用另一个ESB代理PB(它有一个已发布的WSDL)。当我从SoapUI调用PB代理中的SomeOperation操作时,它只起作用:我得到了预期的响应,并根据WSDL模式进行验证 我需要从PA调用PB,所以我用有效负载工厂构建了相应的消息体,用SomeOperation值设置了Action头(正如WSDL中定义的那个动作),并用相应的端点使用call mediator。我得到的是一个错误主体,带有以下错误消息:Web services 调用ESB代理操作时出错(找不到操作的EPR),web-services,proxy,wsdl,wso2,wso2esb,Web Services,Proxy,Wsdl,Wso2,Wso2esb,我有一个WSO2 ESB(4.8.1)代理PA,它调用另一个ESB代理PB(它有一个已发布的WSDL)。当我从SoapUI调用PB代理中的SomeOperation操作时,它只起作用:我得到了预期的响应,并根据WSDL模式进行验证 我需要从PA调用PB,所以我用有效负载工厂构建了相应的消息体,用SomeOperation值设置了Action头(正如WSDL中定义的那个动作),并用相应的端点使用call mediator。我得到的是一个错误主体,带有以下错误消息: The endpoint ref
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的末尾concat/SomeOperation,那么它就可以工作了
如果没有此解决方法,是否可以解决此问题?为什么会发生这种情况?我现在看到一些有类似错误的帖子建议设置Action标题,但实际上我正在设置它
编辑:根据Jean Michel的第一个答案,这个问题似乎已经解决了
进一步的细节:我观察到在PB wsdl中只有SOAP12绑定。。。无论如何,PB会根据Action属性执行操作切换
大小写:PB(未修改)、带有soap11格式EP的PA
它起作用了
大小写:PB(未修改)、带有soap12格式EP的PA
找不到操作的端点引用(EPR)为/services/PBService,WSA操作=null
案例:PB(禁用操作验证)、带有soap11格式EP的PA
它起作用了
案例:PB(禁用操作验证)、带有soap12格式EP的PA
org.apache.axis2.AxisFault:传入消息的输入流为null
我不完全明白发生了什么,但我想我会坚持使用soap 1.1。尝试在代理定义(PB)中设置此参数:
true
编辑端点并设置适当的格式(soap11或soap12)Brilliant,现在已经解决了,但是disableOperationValidation没有太大效果,正如您在我的编辑中看到的那样。
<parameter name="disableOperationValidation" locked="false">true</parameter>