Java 生成的客户端存根中出现 Axis2 IllegalStateException
Java Axis2 IllegalStateException in generated client stub
我正在使用 Axis2 v1.6.3 来使用 https://advertising.criteo.com/API/v201010/AdvertiserService.asmx?WSDL。
许多请求一切正常,但在尝试调用 getAccount 时,生成的客户端出现异常。
传播的异常是调用(在生成的存根中)_messageContext.getTransportOut()
时引起的 NullPointerException
。
然而,进一步挖掘,问题似乎是由于 XMLStreamReader.next
在对信封执行 toOM
时抛出的 IllegalStateException
。
(稍作修改的)堆栈跟踪是:
java.lang.IllegalStateException
at org.apache.xmlbeans.impl.store.Jsr173$XMLStreamReaderForString.next(Jsr173.java:1110)
at org.apache.xmlbeans.impl.store.Jsr173$SyncedJsr173.next(Jsr173.java:1138)
at ----.CriteoStub.toOM(CriteoStub.java:2390)
at ----.CriteoStub.toOM(CriteoStub.java:2379)
at ----.CriteoStub.toEnvelope(CriteoStub.java:3657)
at ----.CriteoStub.getAccount(CriteoStub.java:703)
生成的代码是:
private org.apache.axiom.om.OMElement toOM(final com.criteo.advertising.api.v201010.GetAccountDocument param)
throws org.apache.axis2.AxisFault {
final javax.xml.stream.XMLStreamReader xmlReader = param.newXMLStreamReader();
while (!xmlReader.isStartElement()) {
try {
xmlReader.next(); //<---------- here is the exception risen
} catch (javax.xml.stream.XMLStreamException e) {
throw org.apache.axis2.AxisFault.makeFault(e);
}
}
//...
而且,就我而言,参数内容是:
<xml-fragment/>
Google 显示 related issues in the past,但没有最新信息也没有解决方案。
关于如何解决这个问题的任何线索?
在我的例子中,问题是由于我们使用的 axis2-wsdl2code-maven-plugin
版本与 axis2 库不同。
将 axis2-wsdl2code-maven-plugin
版本更改为 1.6.3 解决了问题。
我正在使用 Axis2 v1.6.3 来使用 https://advertising.criteo.com/API/v201010/AdvertiserService.asmx?WSDL。 许多请求一切正常,但在尝试调用 getAccount 时,生成的客户端出现异常。
传播的异常是调用(在生成的存根中)_messageContext.getTransportOut()
时引起的 NullPointerException
。
然而,进一步挖掘,问题似乎是由于 XMLStreamReader.next
在对信封执行 toOM
时抛出的 IllegalStateException
。
(稍作修改的)堆栈跟踪是:
java.lang.IllegalStateException
at org.apache.xmlbeans.impl.store.Jsr173$XMLStreamReaderForString.next(Jsr173.java:1110)
at org.apache.xmlbeans.impl.store.Jsr173$SyncedJsr173.next(Jsr173.java:1138)
at ----.CriteoStub.toOM(CriteoStub.java:2390)
at ----.CriteoStub.toOM(CriteoStub.java:2379)
at ----.CriteoStub.toEnvelope(CriteoStub.java:3657)
at ----.CriteoStub.getAccount(CriteoStub.java:703)
生成的代码是:
private org.apache.axiom.om.OMElement toOM(final com.criteo.advertising.api.v201010.GetAccountDocument param)
throws org.apache.axis2.AxisFault {
final javax.xml.stream.XMLStreamReader xmlReader = param.newXMLStreamReader();
while (!xmlReader.isStartElement()) {
try {
xmlReader.next(); //<---------- here is the exception risen
} catch (javax.xml.stream.XMLStreamException e) {
throw org.apache.axis2.AxisFault.makeFault(e);
}
}
//...
而且,就我而言,参数内容是:
<xml-fragment/>
Google 显示 related issues in the past,但没有最新信息也没有解决方案。
关于如何解决这个问题的任何线索?
在我的例子中,问题是由于我们使用的 axis2-wsdl2code-maven-plugin
版本与 axis2 库不同。
将 axis2-wsdl2code-maven-plugin
版本更改为 1.6.3 解决了问题。