点击此处---> 群内免费提供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解析,而运行时进程将执行该解析。
现在是个难题。 是否可以干预此行为,或者唯一的办法是通过代理渠道中的模块自定义?
非常感谢您的支持。
尼古拉
您好,Nocila
您可以按照刚才的方式删除/替换Java映射中的特殊字符。
-Priyanka
如果您尝试使用与看到的相同的有效负载进行测试 在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
您可能还想研究 https://launchpad。 support.sap.com/#/notes/2318945
您的初始帖子为...
==>为什么不在ECC(代理运行时)中使用已经在其中使用过的参数消除非法字符呢?
如果绝对必要,您应该像以前那样使用Java映射,因为可能无法用XSLT或图形映射来修复格式不正确的XML。 您甚至可能最终编写了一个自定义模块来修复PI映射运行时之前的问题。
您在Java中是什么?
是的...
一周热门 更多>