我有一段代码来读取 ofx 文件以检索多个标签(例如帐号、余额等),我正在使用 net.sf.ofx4j
一段代码:
public void parse(String filename) throws OFXParseException, IOException, SQLException {
AggregateUnmarshaller unmarshaller = new AggregateUnmarshaller(
ResponseEnvelope.class);
FileInputStream 文件 = null;
尝试 {
文件=新的FileInputStream(文件名);
ResponseEnvelope 信封 = unmarshaller.unmarshal(file);
BankingResponseMessageSet messageSet = (BankingResponseMessageSet) 信封.getMessageSet(MessageSetType.banking);
List 响应 = messageSet.getStatementResponses();
for (BankStatementResponseTransaction 响应:响应) {
BankStatementResponse 消息 = response.getMessage();
字符串货币代码 = 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("错误:"+ e.getMessage());
}
返回空值;
}
它工作得很好,直到有一天它开始抛出以下异常:
net.sf.ofx4j.io.AggregateStackContentHandler onElement 信息:索引 70 处的聚合 SONRS(类 net.sf.ofx4j.domain.data.signon.SignonResponse)不支持元素 INTU.BID。
net.sf.ofx4j.io.AggregateStackContentHandler onElement 信息:索引 70 处的聚合 SONRS(类 net.sf.ofx4j.domain.data.signon.SignonResponse)不支持元素 INTU.USERID。
线程“main”中的异常java.lang.IllegalStateException:java.io.IOException:意外的EOF
谢谢
最佳答案
希望 ofx 文件格式应该被改变。因为您正在请求(MessageSetType.*银行*)。但在您的 ofx 文件中可能有信用卡详细信息。
早期,交易数据包含在 <BANKMSGSRSV1> 标记内的 .ofx 文件中。 但现在交易数据包含在 <CREDITCARDMSGSRSV> 标签中。您需要更改数据接收代码。
希望您能从中得到一些帮助。谢谢
关于java - OFX4J 工作正常后解析异常 - 聚合 SONRS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10206583/