我正在使用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。