camel-bindy - Как мне определить, нет ли записей о теле во время демаршалинга и маршалинга - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть несколько записей в файлах.Есть верхний и нижний колонтитулы.В некоторых случаях файл имеет все три типа записей.но файл имеет только верхний и нижний колонтитулы в другом случае.

Я хочу проанализировать этот файл, используя тот же формат данных.

Данные определены.(тело)

@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]

Как мы реализуем наши требования бизнеса?

...