簡體   English   中英

Apache Camel多行文件解析失敗

[英]Apache Camel Multiple line file parsing fails

我正在嘗試轉換固定長度的文件,但是它不能用於多個文件,並且可以用於單行。

        public class SampleCamelRouter extends RouteBuilder {
            Processor processor = new FixedMapProcessor();
            DataFormat bindy = new BindyFixedLengthDataFormat(Order.class);

            @Override
            public void configure() throws Exception {

                from("file:C:/Users/in").unmarshal(bindy)
                        .split(body()).process(new Processor() {
                            public void process(Exchange exchange) throws Exception {
        //Below is not working
        List<Map<String, Object>> unmarshaledModels = (List<Map<String, Object>>) exchange.getIn().getBody();

        //Below is working
            Order2 unmarshaledModels = (Order2) exchange.getIn().getBody();
                            }
                        }).end();
            }    
        }

訂購:

@FixedLengthRecord(length = 4, paddingChar = ' ')
public class Order1 {

    @DataField(pos = 1, length = 2)
    private int orderNr;

    @DataField(pos = 3, length = 2)
    private String clientNr;
}

C:/Users/in/test.txt

10AB
20CD

例外:

java.lang.ClassCastException: com.camel.fixed1.Order cannot be cast to java.util.List

多行文件也得到了適當的處理,但是它不是列表。相反,處理器正在為輸入文件的每一行執行。

new Processor(){}-正在執行,因此將對每條記錄執行以下行。

Order2 unmarshaledModels = (Order2) exchange.getIn().getBody();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM