java - 意外的子元素 highLevelCategoryReq,事务搜索

标签 java soap apache-axis axis yodlee

将我们的 .wsdl 文件更新到最新的 Yodlee SOAP API (2014_Q4) 时,代码区域中开始出现错误,而以前没有出现过错误。我们处理交易搜索的代码没有任何变化。抛出的错误是

org.apache.axis2.databinding.ADBException: Unexpected subelement highLevelCategoryReq

这发生在 executeUserSearchRequest 调用上,即

Locators.transactionSearchService.executeUserSearchRequest(userContext, transactionSearchRequest)

searchRequest 的设置实际上与示例代码中显示的完全相同(最新的 Java SDK 示例代码,文件夹名为 Aggregation12-JavaSampleApps)。下面显示了一个片段

val transactionSearchRange = new TransactionSearchResultRange()
transactionSearchRange.setStartNumber(startRange)
transactionSearchRange.setEndNumber(endRange)


val transactionSearchRequest = new TransactionSearchRequest()
val transactionSearchFilter = new TransactionSearchFilter
transactionSearchFilter.setTransactionSplitType(TransactionSplitType.ALL_TRANSACTION)
val itemAccountId = new ItemAccountId()
itemAccountId.setIdentifier(bankData.getItemAccountId)
transactionSearchFilter.setItemAccountId(itemAccountId)
transactionSearchRequest.setSearchFilter(transactionSearchFilter)
transactionSearchRequest.setIgnorePaymentTransactions(false)
transactionSearchRequest.setIncludeAggregatedTransactions(true)
transactionSearchRequest.setResultRange(transactionSearchRange)
transactionSearchRequest.setContainerType("all")
transactionSearchRequest.setSearchClients(TransactionSearchClients.DEFAULT_SERVICE_CLIENT)
transactionSearchRequest.setIgnoreUserInput(true)

Locators.transactionSearchService.executeUserSearchRequest(userContext, transactionSearchRequest)

相关的堆栈跟踪如下

org.apache.axis2.databinding.ADBException: Unexpected subelement highLevelCategoryReq
    at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
    at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
    at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2973)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:333)
    at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
    at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
    at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
    at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
    at org.apache.axis.client.Call.invoke(Call.java:2767)
    at org.apache.axis.client.Call.invoke(Call.java:2443)
    at org.apache.axis.client.Call.invoke(Call.java:2366)
    at org.apache.axis.client.Call.invoke(Call.java:1812)
    at com.yodlee.soap.core.transactionsearch.transactionsearchservice.TransactionSearchServiceSoapBindingStub.executeUserSearchRequest(TransactionSearchServiceSoapBindingStub.java:1019)

这是我们需要捕获和处理的错误,还是表明存在一些更大的潜在问题?

最佳答案

您需要使用正确的 SOAP 版本端点。由于您使用的是 2014Q4 WSDL,因此所有 API 调用的端点应指向 2014Q4 版本。

示例 -

交易搜索 - https://xxx.yodlee.com/yodsoap/services/TransactionSearchService_2014Q4

因此,请更改所有网址的服务版本,它应该可以解决您的问题。

关于java - 意外的子元素 highLevelCategoryReq,事务搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27395782/

相关文章:

java - Axis2/Rampart 客户端自签名证书

c# - C# 中的协变有哪些类型? (或者,协方差 : by example)

java - 如何从应用内浏览器打开 PDF 文件?

linux - 使用 Silverlight 访问在 Linux 下运行的 postgres 数据库?

visual-studio-2008 - WCF 服务而不是 ASMX Web 服务?

java - 如何在 Java Web 服务中实现 Soap 错误?

java - 函数式方法与类中的普通方法

java - 在套接字级别重试读取客户请求

c# - 使用 RAW SOAP XML 提交 SOAP Web 服务请求

java - 如何使用 JPA 将 SQL Server 2008 日期读取到 Java 中