标签: bindy

java.lang.IllegalArgumentException:缺少某些字段(可选或必需)

我正在尝试使用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)

java apache-camel bindy

9
推荐指数
1
解决办法
671
查看次数

当某些列有引号而有些列没有时,如何使用 Camel Bindy 解析 csv 文件?

我尝试使用 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”值没有引号,而其余列有。我该如何解决?

java csv apache-camel bindy

4
推荐指数
1
解决办法
1373
查看次数

我可以在一个包中包含多个 Bindy 带注释的类,并且仍然在 Camel 中解组 CSV 吗?

我想要一个像 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)

apache-camel bindy

1
推荐指数
1
解决办法
1935
查看次数

标签 统计

apache-camel ×3

bindy ×3

java ×2

csv ×1