我正在使用talend-ESB并希望使用smooks将EDI消息解析为XML &我在正文中得到空值。代码如下所示。camel-smooks在主体中返回null
from(
"file://D:/cimt/InvoiceEDI_Mapping/" + "?noop=true"
+ "&autoCreate=true" + "&flatten=false"
+ "&fileName=InDev_EDI_Msg.txt" + "&bufferSize=128")
.routeId("TestSmooksConfig_cFile_1")
.log(org.apache.camel.LoggingLevel.WARN,
"TestSmooksConfig.cLog_1", "${body}")
.id("TestSmooksConfig_cLog_1")
.to("smooks://EDI_Config.xml")
.to("log:TestSmooksConfig.cLog_2" + "?level=WARN")
.id("TestSmooksConfig_cLog_2");
}
我的Talend路线如下图所示。
我用下面的一组外部依赖性的。 milyn-公地1.7.0.jar milyn-的Smooks-骆驼1.7.0.jar milyn-的Smooks-EDI-1.7.0.jar milyn-的Smooks核-1.7.0.jar Jaxen的-1.1 .6.jar milyn-edisax解析器-1.4.jar
而且,我看到一个奇怪的行为,在执行时,我仍然看到“启动”之前cJavaDSLProcessor,最初让我不知道,如果在所有它得到执行。但后来,当我故意在EDI-Mapping中犯了一个错误时,那么这条路线发生了错误,这使我确信它解析了EDI信息。
我也搜索在这里张贴了这个问题之前,并且发现这种link
一个类似的问题,我试图降低我org.milyn的修订。*的jar 1.4.0,并得到了一个异常该路线无法注册smooks组件。所以我继续使用1.7.0版本的org.milyn。* jar。