从代理管理非法XML字符

2020-08-24 08:15发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨,人们 我在异步方案PROX...

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

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


嗨,人们

我在异步方案PROXY-to-FILE(PO 7.5单堆栈)上遇到问题。

在来自ECC的有效负载中,我可以接收到XML非法字符,必须先删除这些非法字符,以免它们导致映射失败。

我实现了一个Java映射,该映射首先在Operation Mapping中起作用。

通过功能测试>在配置和监视中发送测试消息来测试场景都可以正常工作。

相反,通过ECC运行代理,流失败并显示以下错误:

将消息传输到端点 使用连接SOAP_http:// sap.com/xi/XI/System 失败,原因是:com。 sap.aii.af.service.mapping.MappingException:runtimeApplication映射程序中的映射失败 com/nick4name/xi/javamapping/jmXmlCharsCleaning/JMStartup 会引发流转换异常:[jmXmlCharsCleaning] org.xml.sax.SAXParseException; lineNumber:1; columnNumber:2112; 字符参考"&#

请注意该进程已正确识别了操作映射,请参阅" com/nick4name/xi/javamapping/jmXmlCharsCleaning/JMStartup",然后我的jm,但可能在运行之前失败。

似乎,该测试工具从手动设置的ICO开始,会跳过最后一个XML解析,而运行时进程将执行该解析。

现在是个难题。 是否可以干预此行为,或者唯一的办法是通过代理渠道中的模块自定义?

非常感谢您的支持。

尼古拉

9条回答
shere_lin
2020-08-24 09:04

如果您尝试使用与看到的相同的有效负载进行测试 在ECC的SXMB_MONI中,如果在OM中相同,它应该在运行时工作。

此外,请检查XML声明中的编码,以防万一不同。 您可能需要根据ECC有效负载中的方式调整Java代码。

privatestaticbyte [] cleanChars(byte [] by){

String s = newString(by," UTF-8");

by = null;

s = s.replaceAll(" [\\ x00-\\ x08]","").replaceAll(" [\\ x10-\\ x1f]","");

返回s.getBytes();

}

--Priyanka

一周热门 更多>