Исключение синтаксического анализа OFX4J после того, как все заработало нормально - агрегат SONRS
У меня был кусок кода для чтения файла ofx для получения нескольких тегов (таких как номер счета, баланс и т. Д.). Я использую net.sf.ofx4j.
Часть кода:
public void parse(String filename) throws OFXParseException, IOException, SQLException { AggregateUnmarshaller<ResponseEnvelope> unmarshaller = new AggregateUnmarshaller<ResponseEnvelope>( ResponseEnvelope.class); FileInputStream file = null; try { file = new FileInputStream(filename); ResponseEnvelope envelope = unmarshaller.unmarshal(file); BankingResponseMessageSet messageSet = (BankingResponseMessageSet) envelope.getMessageSet(MessageSetType.banking); List<BankStatementResponseTransaction> responses = messageSet.getStatementResponses(); for (BankStatementResponseTransaction response : responses) { BankStatementResponse message = response.getMessage(); String currencyCode = message.getCurrencyCode(); String acct_number = message.getAccount().getAccountNumber(); double av = message.getAvailableBalance().getAmount(); double cur = message.getLedgerBalance().getAmount(); AccountType acct_type = message.getAccount().getAccountType(); } } catch (OFXParseException e) { System.out.println("Error: " + e.getMessage()); } return null; }
Он работал нормально, пока однажды не начал выдавать следующее исключение:
net.sf.ofx4j.io.AggregateStackContentHandler onElement INFO: Элемент INTU.BID не поддерживается в агрегированных SONRS (класс net.sf.ofx4j.domain.data.signon.SignonResponse) с индексом 70.
net.sf.ofx4j.io.AggregateStackContentHandler onElement INFO: Элемент INTU.USERID не поддерживается в агрегированных SONRS (класс net.sf.ofx4j.domain.data.signon.SignonResponse) с индексом 70.
Исключение в потоке "main" java.lang.IllegalStateException: java.io.IOException: Неожиданный EOF
Спасибо
1 ответ
Надеюсь, что формат файла x должен быть изменен. потому что вы запрашиваете (MessageSetType. *banking*). Но в вашем файле ofx могут быть данные кредитной карты.
Ранее данные транзакции включаются в файл.ofx внутри тега < BANKMSGSRSV1>. Но теперь данные транзакции включены в тег < CREDITCARDMSGSRSV>. Вам нужно изменить код получения данных.
Надеюсь, вы можете получить некоторую помощь от этого. Спасибо