Spring Batch: SingleItemPeekableItemReader не работает несколько раз - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь использовать SingleItemPeekableItemReader для чтения многострочных данных.Это иногда не работает, и нет ошибки.Во время отладки он просто показывает, что reader.peek() равно нулю.Что мне здесь не хватает?Фрагмент XML-файла:

< bean id="itemReaderA" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
        ...
    < /bean> 
    < bean id="itemReaderB" class="org.springframework.batch.item.support.SingleItemPeekableItemReader" scope="step">
        < property name="delegate" ref="itemReaderA"/>
    < /bean>
    < bean id="TransactionFileReader" class="<customReader class>" scope="step">
        < property name="delegate" ref="itemReaderB"/>
    < /bean>

Метод чтения / Класс

public class customReader implements ItemReader<ELCTransactionHeader>, ItemStream {
SingleItemPeekableItemReader<ElcHKTransactionFileDatabean> delegate;

public CustomBEan read() throws Exception, ParseException, NonTransientResourceException {
    InputBEan line = null;
    InputBEan prevElement = null;
    boolean exit = false;       
    CustomBEan transactionObj = null;
    while (!exit && (line = (InputBEan) this.delegate.peek()) != null) {
        if ((prevElement == null ) || (prevElement != null && line.getInvoiceNumber().equals(prevElement.getInvoiceNumber()))) {
            System.out.println("Part of same txn or beginning of new txn");
            delegate.read();
            transactionObj = processLine(transactionObj , line);
            prevElement = line;
        } else {
            System.out.println("Different txn");
            exit = true;
        }

    }
    return transactionObj;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...