我不知道,如果标题是最好的问题,所以如果有更多的orinted标题请建议
我正手在骆驼在这里我必须从文件系统获取一些csv文件,并需要将其转换为XML格式,并把它放在一些其他系统
我用骆驼这个在这里是我的示例代码POC
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
import com.poc.convertor.CSVConverterBean;
public class TestPOC {
public static void main(String args[]) throws Exception {
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
public void configure() {
from("file:data/csv?noop=true").unmarshal().csv().bean(new CSVConverterBean(),"processCSVInvoice").to("file:data/csvoutput?fileName=test.xml").marshal("jaxb");
}
});
context.start();
Thread.sleep(1000);
context.stop();
}
}
在这种方法中骆驼CSV解组器将隐蔽csv文件中Java列表List<List<String>>
我写一个Java变换器CSVConverterBean
这将遍历该列表,并设置在相应的Java对象的值通过JAXB 2的产生。 x,最终对象被封送到xml中并且文件正在保存。
一切正在正常工作只有一个问题,如果将来出现任何更改映射的请求,我们需要在CSVConverterBean
中进行修改,并且此java文件需要重新编译并需要重新分配,我们想要避免。
我的问题是,有没有什么办法可以将Camel给出的java列表中的值映射到由JaxB生成的相应java类,以便可以避免重编译java代码的需要。