我正在尝试使用 apache Camel 转换 swift MT-MX。我发现:APACHE CAMEL COMPONENT SWIFT MX并且我尝试使用它:
public class MySpringBootRouter extends RouteBuilder {
@Override
public void configure() {
from("file://inputDir?noop=true")
.convertBodyTo(String.class)
.marshal().swiftMx()
.to("file:output");
}
}
但它向我显示了这个错误:
java.lang.ClassCastException:类 java.lang.String 无法转换为 类 com.prowidesoftware.swift.model.mx.AbstractMX (java.lang.String 位于加载程序“bootstrap”的 java.base 模块中; com.prowidesoftware.swift.model.mx.AbstractMX 位于未命名模块中 加载器“应用程序”)
我会使用一个处理器,将交换消息正文作为字符串读取。
类似这样的:
public class MySpringBootRouter extends RouteBuilder {
@Override
public void configure() {
from("file://inputDir?noop=true")
.convertBodyTo(String.class)
.process(exchange -> {
String body = exchange.getMessage().getBody(String.class);
AbstractMX mxMessage = MxParseUtils.parse(body);
exchange.getMessage().setBody(mxMessage);
})
.marshal().swiftMx()
.to("file:output");
}
}