[英]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.