我不知道,如果標題是最好的問題,所以如果有更多的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代碼的需要。