いくつかのタグ(アカウント番号、残高など)を取得するために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は、インデックス70の集約SONRS(クラスnet.sf.ofx4j.domain.data.signon.SignonResponse)ではサポートされていません。
net.sf.ofx4j.io.AggregateStackContentHandler onElement INFO:要素INTU.USERIDは、インデックス70の集約SONRS(クラスnet.sf.ofx4j.domain.data.signon.SignonResponse)ではサポートされていません。
スレッド「メイン」の例外java.lang.IllegalStateException:java.io.IOException:予期しないEOF
ありがとう