1

我有一段代码来读取 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:索引 70 处的聚合 SONRS(类 net.sf.ofx4j.domain.data.signon.SignonResponse)不支持元素 INTU.BID。

net.sf.ofx4j.io.AggregateStackContentHandler onElement INFO:索引 70 处的聚合 SONRS(类 net.sf.ofx4j.domain.data.signon.SignonResponse)不支持元素 INTU.USERID。

线程“main”中的异常 java.lang.IllegalStateException: java.io.IOException: Unexpected EOF

谢谢

4

1 回答 1

0

希望 ofx 文件格式应该改变。因为您正在请求(MessageSetType .*银行*)。但是在您的 ofx 文件中可能有信用卡详细信息。

早期,交易数据包含在 < BANKMSGSRSV1 > 标签内的 .ofx 文件中。但是现在交易数据包含在 < CREDITCARDMSGSRV > 标签中。您需要更改数据接收代码。

希望你能从中得到一些帮助。谢谢

于 2012-05-30T07:16:27.443 回答