点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
运行一个简单的iflow以使用Timer,Content Modifier和Request/Response执行SOAP调用时出现错误:
java.lang.IllegalArgumentException:PayLoad元素不适合BindingOperation的消息部分。 请检查BindingOperation和PayLoadMessage。
此错误似乎说明CPI正在验证XML有效负载,并且在调用Web服务之前验证失败。 我看到这个问题已经发布了几次,给出了几个答案,我尝试了许多解决方案,但没有一个为我解决了这个问题。
我成功使用SOAPUI调用了相同的Web服务方法,该方法有效并返回了令牌:
在创建iFlow时,我将WSDL作为资源上传,并且在SOAP通道中选择了LOGIN操作,SAP自动填充了该通道操作,并将名称空间添加到了运行时配置中:
SOAP连接:
我跟踪了发送到Web服务的有效负载,它看起来还不错:
这是日志中出现的错误:
WSDL位于此处:
https://test.c3reservations.com/BreakthruBev-WS/PurchaseOrderWebService?wsdl任何人都可以看到我需要进行哪些更改才能使其正常工作吗?
提前感谢!
(36.5 kB)
我发现了问题。 在SOAP连接屏幕中,如果填写了WSDL字段,则SOAP通道会尝试在WSDL中找到该操作的复杂类型,以验证有效负载中的标记。 例如,在这种情况下,我正在调用LOGIN操作,因此它正在寻找绑定到登录操作的复杂类型(在WSDL中具有标签),但是由于没有任何类型,因此需要进行验证 失败,SAP发出此消息" PayLoad元素无法与BindingOperation的消息部分配合",这意味着SAP无法验证有效负载中的标记。
所以对我来说,有两种可能的解决方案:
解决方案1:将缺少的复杂类型添加到WSDL中,然后填充WSDL,Service,Endpoint和Operation Name字段。 如果您填充它们,这将允许您为该操作配置特定的Web服务安全策略。 或者,
解决方案2:如果不需要在此操作上创建特定的安全策略,则将WSDL,Service,Endpoint和Operation Name字段保留为空白,并且CPI不会尝试验证有效负载中的标签,而只是 将其传递到Web服务。
本文对解决这一问题非常有帮助:
https ://blogs.sap.com/2018/06/28/cloud-integration-usage-of-wsdls-in-the-soap-adapter/
感谢Sriprasad。 我尝试了此操作,但是在CPI中创建映射时,WSDL的结构列表未列出登录消息,因此看来我无法使用创建消息映射功能对其进行映射。 WSDL可能有问题吗? WSDL已附加。
WSDL位于此处:
https://test.c3reservations.com/BreakthruBev-WS/PurchaseOrderWebService?wsdl
Hello Ken,
在调用具有目标结构作为目标系统WSDL的SOAP Service之前创建消息映射,以确保所有 发送必需的名称空间后,它应该可以解决您的问题
问候
Sriprasad Shivaram Bhat
我通过清空这四个字段来克服了验证错误 在SOAP通道配置中:
一周热门 更多>