簡體   English   中英

生成的客戶端存根中的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);
        }
    }
 //...

而且,就我而言,param內容是: <xml-fragment/>

谷歌過去曾表示過相關問題 ,但目前沒有解決方案。

有關如何解決這個問題的任何線索?

在我的情況下,問題是由於我們使用了與axis2庫不同的axis2-wsdl2code-maven-plugin的版本。

axis2-wsdl2code-maven-plugin版本更改為1.6.3解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM