CPI肥皂错误:PayLoad元素无法与BindingOperation的消息部分配合使用

2020-08-25 14:41发布

         点击此处--->   EasySAP.com群内免费提供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)

         点击此处--->   EasySAP.com群内免费提供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)
付费偷看设置
发送
4条回答
代楠1984
1楼-- · 2020-08-25 15:04

我发现了问题。 在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/

d56caomao
2楼-- · 2020-08-25 15:02

感谢Sriprasad。 我尝试了此操作,但是在CPI中创建映射时,WSDL的结构列表未列出登录消息,因此看来我无法使用创建消息映射功能对其进行映射。 WSDL可能有问题吗? WSDL已附加。

WSDL位于此处:

https://test.c3reservations.com/BreakthruBev-WS/PurchaseOrderWebService?wsdl

Hello Ken,

在调用具有目标结构作为目标系统WSDL的SOAP Service之前创建消息映射,以确保所有 发送必需的名称空间后,它应该可以解决您的问题

问候

Sriprasad Shivaram Bhat

一只江湖小虾
4楼-- · 2020-08-25 14:51

我通过清空这四个字段来克服了验证错误 在SOAP通道配置中:

一周热门 更多>