[英]java.lang.NoClassDefFoundError: org/apache/axis2/client/Stub
[英]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);
}
}
//...
而且,就我而言,param內容是: <xml-fragment/>
有關如何解決這個問題的任何線索?
在我的情況下,問題是由於我們使用了與axis2庫不同的axis2-wsdl2code-maven-plugin
的版本。
將axis2-wsdl2code-maven-plugin
版本更改為1.6.3解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.