У меня есть несколько записей в файлах.Есть верхний и нижний колонтитулы.В некоторых случаях файл имеет все три типа записей.но файл имеет только верхний и нижний колонтитулы в другом случае.
Я хочу проанализировать этот файл, используя тот же формат данных.
Данные определены.(тело)
@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]
Как мы реализуем наши требования бизнеса?