SOAP(轴)消息被附加的信封/标题/正文包裹

2020-09-20 13:49发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


 

由于第三方正在将其Web服务从一台服务器迁移到另一台服务器,也从SOAP 1.1迁移到SOAP 1.2,因此我们向第三方发送了一个同步的SOAP消息。

为此,我们已经修改了SOAP接收器适配器以使用" HTTP(轴)"的传输协议,以允许我们使用SOAP 1.2(最初,它在PI中使用了标准的SOAP HTTP-SOAP 1.1设置)。

但是,在测试中,第三方注意到我们正在发送两个信封/正文/标题元素。 这就是他们所看到的(注意" soapenv"和" env"元素)...

 <?xml version =" 1.0"?>
 
   
   
     
       
         ...
       
       
     
   
 
 

在我们的PI系统中的SXMB_MONI中,我们在有效负载主文档中看到了离开PI的情况(注意只是" env"元素)...

 <?xml version =" 1.0"?>
 
   
     ...
   
   
 
 

这是由Java Mapping创建的,并且是当前Web服务当前使用的(使用标准SOAP适配器和HTTP SOAP 1.1)。

因此,以某种方式,我们认为离开PI的XML被包裹在其他Envelope,Header和Body中了吗? (即" soapenv"元素似乎已添加到我们的" env"元素中)。

我们的通讯渠道("参数"标签)的设置如下:

  • 适配器类型:SOAP
  • 发件人/收件人:收件人
  • 传输协议:HTTP(轴)
  • 消息协议:轴
  • 适配器引擎:中央适配器引擎
  • 连接参数URL:第三方Web服务的https地址
  • 身份验证:无
  • 出站参数
  • SOAP版本:1.2
  • SOAP操作:第三方Web服务所需的操作
  • 封装格式:MIME
  • XI参数
  • 保留XI标头:未选中
  • 保留附件:已打勾
  • 有效负载提取:SOAP Body Child

"通信通道"的"标识符"和"模块"选项卡为默认设置-因此此处未进行任何更改。

我们尝试更改XI Parameters设置以查看是否有区别,并且发现如果将Payload Extraction设置为" SOAP Envelope",则第三方只会看到一个Envelope,Header和Body,如图所示 此处:

 <?xml version =" 1.0"?>
 
   
     ...
   
   
 
 

最初,我们认为这已解决了该问题,但是在仔细检查Envelope标签时,我们注意到,这似乎是在消息离开SXMB_MONI之后以某种方式添加的信封(即其" soapenv"元素, 我们需要" env"元素)。

有没有其他人看到过这个并且知道如何解决?

非常感谢,

Gareth

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


 

由于第三方正在将其Web服务从一台服务器迁移到另一台服务器,也从SOAP 1.1迁移到SOAP 1.2,因此我们向第三方发送了一个同步的SOAP消息。

为此,我们已经修改了SOAP接收器适配器以使用" HTTP(轴)"的传输协议,以允许我们使用SOAP 1.2(最初,它在PI中使用了标准的SOAP HTTP-SOAP 1.1设置)。

但是,在测试中,第三方注意到我们正在发送两个信封/正文/标题元素。 这就是他们所看到的(注意" soapenv"和" env"元素)...

 <?xml version =" 1.0"?>
 
   
   
     
       
         ...
       
       
     
   
 
 

在我们的PI系统中的SXMB_MONI中,我们在有效负载主文档中看到了离开PI的情况(注意只是" env"元素)...

 <?xml version =" 1.0"?>
 
   
     ...
   
   
 
 

这是由Java Mapping创建的,并且是当前Web服务当前使用的(使用标准SOAP适配器和HTTP SOAP 1.1)。

因此,以某种方式,我们认为离开PI的XML被包裹在其他Envelope,Header和Body中了吗? (即" soapenv"元素似乎已添加到我们的" env"元素中)。

我们的通讯渠道("参数"标签)的设置如下:

  • 适配器类型:SOAP
  • 发件人/收件人:收件人
  • 传输协议:HTTP(轴)
  • 消息协议:轴
  • 适配器引擎:中央适配器引擎
  • 连接参数URL:第三方Web服务的https地址
  • 身份验证:无
  • 出站参数
  • SOAP版本:1.2
  • SOAP操作:第三方Web服务所需的操作
  • 封装格式:MIME
  • XI参数
  • 保留XI标头:未选中
  • 保留附件:已打勾
  • 有效负载提取:SOAP Body Child

"通信通道"的"标识符"和"模块"选项卡为默认设置-因此此处未进行任何更改。

我们尝试更改XI Parameters设置以查看是否有区别,并且发现如果将Payload Extraction设置为" SOAP Envelope",则第三方只会看到一个Envelope,Header和Body,如图所示 此处:

 <?xml version =" 1.0"?>
 
   
     ...
   
   
 
 

最初,我们认为这已解决了该问题,但是在仔细检查Envelope标签时,我们注意到,这似乎是在消息离开SXMB_MONI之后以某种方式添加的信封(即其" soapenv"元素, 我们需要" env"元素)。

有没有其他人看到过这个并且知道如何解决?

非常感谢,

Gareth

付费偷看设置
发送
2条回答
渐行渐远_HoldOn
1楼-- · 2020-09-20 14:14

加雷斯,

根据您的描述,您需要应用SAP注意 2616936 -轴适配器 返回完整的SOAP信封,而不是SOAP Body Child元素。


最诚挚的问候,
伴侣

浮生未央
2楼-- · 2020-09-20 14:02

感谢您的配合,伴侣。

我检查了SAP Note 2616936,并说该行为是SAP Note 2590102的副作用。但是,我不认为我们应用了SAP Note 2590102,因为它引用的是7.31 SP017至SP023,而我们有7.31 SP014。

因此,如果我们尚未将SAP Note 2590102应用于系统,SAP Note 2616936是否可以解决我们遇到的问题?

非常感谢,
盖尔斯

一周热门 更多>