我最近将我的 Smooks 应用程序从 1.4 升级到 1.5.1,但我不断收到以下异常:
处理 EDI 文件 org.milyn.cdr.SmooksConfigurationException 时出错:在类“org.milyn.smooks.scripting.groovy.GroovyContentHandlerFactory”上调用@Initialize 方法“initialize”时出错。
我对 Smooks 和 Groovy 很陌生,但这是我的代码的摘录,它在 1.4 版中运行。我的类路径中还有所有 1.5.1 类,包括我尝试加载的 1.5 EDI 定义。
Smooks smooks = null;
try {
smooks = new Smooks();
}
catch(Exception exception) { System.out.println("Error " + exception); }
try {
smooks.setReaderConfig(new UNEdifactReaderConfigurator("urn:org.milyn.edi.unedifact:d01b-mapping:*"));
// Create an exec context - no profiles....
ExecutionContext executionContext = smooks.createExecutionContext();
DOMResult domResult = new DOMResult();
// Configure the execution context to generate a report...
executionContext.setEventListener(new HtmlReportGenerator("EDI/reports/report.html"));
smooks.filterSource(new StreamSource((InputStream) bufferedinputstream), domResult);
从 GroovyContentHandlerFactory 中提取
@Initialize
public void initialize() throws IOException {
String templateText = StreamUtils.readStreamAsString(getClass().getResourceAsStream("ScriptedGroovy.ftl"));
classTemplate = new FreeMarkerTemplate(templateText);
任何帮助或想法将不胜感激,因为我花了几个小时试图弄清楚这一点。
干杯,马特