camel-bindy-如何定义拆封和封送期间是否没有身体记录

时间:2019-04-02 03:18:27

标签: apache-camel spring-camel

我在文件中有一些记录。 有页眉,正文和页脚。 在某些情况下,文件具有所有三个类型记录。 但是,在另一种情况下,文件只有页眉和页脚。

我想使用相同的数据格式来解析这些文件。

已定义数据。 (正文)

@FixedLengthRecord(header=KRHeader.class, footer=KRTrailer.class)
public class KRFixedFormat implements Serializable {
    private static final long serialVersionUID = 1L;

    @DataField(pos=1, length=1, trim=true)
    private String sType; 
    ....

已定义数据。 (标题)

@FixedLengthRecord(length=39, paddingChar=' ')
public class KRHeader implements Serializable {
    private static final long serialVersionUID = 1L;

    @DataField(pos=1, length=1, trim=true, defaultValue="H")
    private String sType; 
    ....

已定义数据。 (页脚)

@FixedLengthRecord(length=44, paddingChar=' ')
public class KRTrailer implements Serializable {
private static final long serialVersionUID = 1L;

@DataField(pos=1, length=1, trim=true, defaultValue="T")
private char sType;
    ....

如果只有页眉和页脚的文件正在加密,则应用程序已生成异常,如打击。

java.lang.IllegalArgumentException: No records have been defined in the file
at org.apache.camel.dataformat.bindy.fixed.BindyFixedLengthDataFormat.unmarshal(BindyFixedLengthDataFormat.java:250) ~[camel-bindy-2.23.1.jar:2.23.1]
at org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:69) ~[camel-core-2.23.1.jar:2.23.1]
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548) ~[camel-core-2.23.1.jar:2.23.1]
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) ~[camel-core-2.23.1.jar:2.23.1]

我们如何实施才能满足业务需求?

0 个答案:

没有答案