使用HTTPS的SOAP接收器,动态配置/URL问题

2020-08-31 07:29发布

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

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


大家好,

我已经在SDN上的帖子中对此进行了大量研究和故障排除,但进展并不顺利。 我希望有人可以帮助我解决这个问题。

我的场景是我有一个接口,该接口最终到达SOAP接收器,该接口需要将有效负载重定向到Sender SOAP通道。 最后,我需要动态地执行此操作,这就是我碰壁的地方。

这是有效的,SOAP接收器通道的配置。 这将获取传入的有效负载,并将其重定向到给定的SOAP Sender。 之前有一个简单的MM:

-适配器类型:SOAP 7.01版本

-消息协议:SOAP 1.1

-适配器引擎:集成服务器

-目标URL:https://:52201/XISOAPAdapter/MessageServlet?channel =:LMP_D:LMP_SOAP_Out_02

-顺便说一句:我还在模块中做了一个PayloadSwapBean,但这没关系。 仅提及完整披露????

这确实将有效负载重定向到SOAP发送方,该发送方可以毫无问题地对其进行处理。

因此,我采取了下一步以动态设置TargetURL:以下是其他mod:

1)消息映射中的UDF设置TServerLocation

 DynamicConfiguration conf =(DynamicConfiguration)container.getTransformationParameters()。get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
 DynamicConfigurationKey键= DynamicConfigurationKey.create(" http://sap.com/xi/XI/System/SOAP"," TServerLocation");
 conf.put(key,varURL);
 

2)在SOAP接收器中:

-目标URL设置为" https://",不带引号

-"高级"选项卡,选中"使用适配器特定的消息属性"和"可变传输绑定"

添加了以上信息:

-UDF中的varURL是传入的变量,其值与comm通道中的初始静态TargetURL相同(https://:52201/XISOAPAdapter/MessageServlet?channel =:LMP_D: LMP_SOAP_Out_02)

-新的targetURL值" https://"是因为我发送的URL也是一个https,并且必须与我所见的SDN帖子匹配

当我使用相同的数据执行此操作时,我会看到:

1)SXI_MONITOR成功,并且有一个动态配置节点,其值是:

 
    https://:52201/XISOAPAdapter/MessageServlet?channel =:LMP_D:LMP_SOAP_Out_02 
    DE4_SC-INT-2076_20111003.xml 
   
 

2)RTB适配器监视器中的错误说:

" SOAP的无效内容类型:TEXT/HTML;未经授权的HTTP 401:java.io.IOException:SOAP的无效内容类型:TEXT/HTML; HTTP 401未经授权"

因此,好像动态配置已按照我的期望进行设置,并且该值与成功执行目标的目标URL相同。 由于数据与之前的成功运行相同,并且应该使用相同的URL,所以我不理解401消息出现的错误。

正如我所说,我已经对SDN帖子进行了大量阅读和测试。 <<已删除文本>>,但没有链接垃圾邮件????

感谢您的帮助!

编辑者:马特(Matt),2011年10月5日上午9:37

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

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


大家好,

我已经在SDN上的帖子中对此进行了大量研究和故障排除,但进展并不顺利。 我希望有人可以帮助我解决这个问题。

我的场景是我有一个接口,该接口最终到达SOAP接收器,该接口需要将有效负载重定向到Sender SOAP通道。 最后,我需要动态地执行此操作,这就是我碰壁的地方。

这是有效的,SOAP接收器通道的配置。 这将获取传入的有效负载,并将其重定向到给定的SOAP Sender。 之前有一个简单的MM:

-适配器类型:SOAP 7.01版本

-消息协议:SOAP 1.1

-适配器引擎:集成服务器

-目标URL:https://:52201/XISOAPAdapter/MessageServlet?channel =:LMP_D:LMP_SOAP_Out_02

-顺便说一句:我还在模块中做了一个PayloadSwapBean,但这没关系。 仅提及完整披露????

这确实将有效负载重定向到SOAP发送方,该发送方可以毫无问题地对其进行处理。

因此,我采取了下一步以动态设置TargetURL:以下是其他mod:

1)消息映射中的UDF设置TServerLocation

 DynamicConfiguration conf =(DynamicConfiguration)container.getTransformationParameters()。get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
 DynamicConfigurationKey键= DynamicConfigurationKey.create(" http://sap.com/xi/XI/System/SOAP"," TServerLocation");
 conf.put(key,varURL);
 

2)在SOAP接收器中:

-目标URL设置为" https://",不带引号

-"高级"选项卡,选中"使用适配器特定的消息属性"和"可变传输绑定"

添加了以上信息:

-UDF中的varURL是传入的变量,其值与comm通道中的初始静态TargetURL相同(https://:52201/XISOAPAdapter/MessageServlet?channel =:LMP_D: LMP_SOAP_Out_02)

-新的targetURL值" https://"是因为我发送的URL也是一个https,并且必须与我所见的SDN帖子匹配

当我使用相同的数据执行此操作时,我会看到:

1)SXI_MONITOR成功,并且有一个动态配置节点,其值是:

 
    https://:52201/XISOAPAdapter/MessageServlet?channel =:LMP_D:LMP_SOAP_Out_02 
    DE4_SC-INT-2076_20111003.xml 
   
 

2)RTB适配器监视器中的错误说:

" SOAP的无效内容类型:TEXT/HTML;未经授权的HTTP 401:java.io.IOException:SOAP的无效内容类型:TEXT/HTML; HTTP 401未经授权"

因此,好像动态配置已按照我的期望进行设置,并且该值与成功执行目标的目标URL相同。 由于数据与之前的成功运行相同,并且应该使用相同的URL,所以我不理解401消息出现的错误。

正如我所说,我已经对SDN帖子进行了大量阅读和测试。 <<已删除文本>>,但没有链接垃圾邮件????

感谢您的帮助!

编辑者:马特(Matt),2011年10月5日上午9:37

付费偷看设置
发送
2条回答
wang628962
1楼 · 2020-08-31 08:18.采纳回答

你好,达林,

您的情况很有趣。 ????因为您的错误是401,所以这与凭据问题有关。 PI中存在一个错误,因此一旦对URL使用动态配置,则用户名也需要包含在动态配置中。 UDF中用户名的技术名称是TAuthKey。 通过转到高级选项卡->变量传输绑定->查看授权密钥,可以在SOAP接收器通信通道中设置密码。

PI中的标准SOAP发送者要求您仍然提供用户名/密码,即使您使用的是SSL。 确保用户名存在于PI中并具有必要的授权。 现在,请尝试输入您的PI用户名和密码。

希望这会有所帮助,

马克

nice_wp
2楼-- · 2020-08-31 08:18

亲爱的马克,

首先:我尝试了将UDF中的TAuthKey与SOAP接收器通道中的授权密钥用户名/密码对结合使用的解决方案,效果很好。

在这里,我必须两次维护相同的用户名(一次作为操作映射参数,一次在SOAP接收器通道的Authorization Keys中)。 您是否有可能仅在其中一个位置维护用户名?

最好的问候

Tobias Miller

一周热门 更多>