我在文件中有一些记录。 有页眉,正文和页脚。 在某些情况下,文件具有所有三个类型记录。 但是,在另一种情况下,文件只有页眉和页脚。
我想使用相同的数据格式来解析这些文件。
已定义数据。 (正文)
@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]
我们如何实施才能满足业务需求?