我正在尝试使用Apache Camel Bindy创建一个固定文件阅读器,但我得到了异常.请帮助我找到解决方案.没有页眉和页脚,这是运行良好.
更新: 文件很小,现在可以理解并添加公共
文件内容:
101-08-2009
30A9
20A9
60A9
40A9
10A9
50A8
9000000002
Run Code Online (Sandbox Code Playgroud)
新例外:
java.lang.IllegalArgumentException: Some fields are missing (optional or mandatory), line: 2
at org.apache.camel.dataformat.bindy.BindyFixedLengthFactory.bind(BindyFixedLengthFactory.java:295) ~[camel-bindy-2.19.1.jar:2.19.1]
at org.apache.camel.dataformat.bindy.fixed.BindyFixedLengthDataFormat.createModel(BindyFixedLengthDataFormat.java:294) ~[camel-bindy-2.19.1.jar:2.19.1]
Run Code Online (Sandbox Code Playgroud)
例外:
org.apache.camel.RuntimeCamelException: java.lang.IllegalAccessException: Class org.apache.camel.util.ObjectHelper can not access a member of class com.camel.examples.OrderHeader with modifiers ""
at org.apache.camel.util.ObjectHelper.newInstance(ObjectHelper.java:1686) ~[camel-core-2.19.1.jar:2.19.1]
Run Code Online (Sandbox Code Playgroud)
路由器:
// @Override
public void configure() throws Exception {
Comparator<Order> comparator = new Comparator<Order>() {
@Override
public int compare(Order o1, Order o2) {
return o1.getOrderNr() - o2.getOrderNr();
}
};
DataFormat …Run Code Online (Sandbox Code Playgroud) 我尝试使用 Camel Bindy 来处理我的 csv 文件。文件的行如下所示:
1111;"2016-06-21";"12:15";"Test1";"1";
2222;"2016-06-21";"12:16";"Test2";"2";
Run Code Online (Sandbox Code Playgroud)
我的模型文件是:
@CsvRecord(separator = ";")
public class CsvBean implements Serializable {
@DataField(pos = 1)
private Integer key;
@DataField(pos = 2, pattern = "yyyy-MM-dd")
private Date date;
@DataField(pos = 3, pattern = "hh-mm")
private Date time;
@DataField(pos = 4)
private String title;
@DataField(pos = 5)
private int status;
}
Run Code Online (Sandbox Code Playgroud)
我使用 unmarshall(bindy) 方法。我得到的例外是:
java.lang.IllegalArgumentException: Parsing error detected for field defined at the position: 3, line: 1
at org.apache.camel.dataformat.bindy.BindyCsvFactory.bind(BindyCsvFactory.java:207)
Run Code Online (Sandbox Code Playgroud)
我认为问题是第一个“id”值没有引号,而其余列有。我该如何解决?
我想要一个像 my.company.bindy 这样的包,其中有几个类都用 Bindy 注释进行注释。然后我想要 Camel 路线可以将 CSV 解组为这些类型之一。我已经完成了所有工作,但是如果包中有多个带有 Bindy 带注释的类,则解组会失败。这是因为 Bindy 试图将 CSV 行解组到包中的每个类中。并且特定的行不会正确地编组到多个类中。我的数据格式在 Spring 中声明如下:
<bean class="org.apache.camel.dataformat.bindy.csv.BindyCsvDataFormat">
<property name="packages" value="my.company.bindy"/>
</bean>
Run Code Online (Sandbox Code Playgroud)