【问题标题】:Java Axis2 IllegalStateException in generated client stub生成的客户端存根中的 Java Axis2 IllegalStateException
【发布时间】:2016-01-05 02:19:17
【问题描述】:

我正在使用 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,但没有最新信息,也没有解决方案。

关于如何解决这个问题的任何线索?

【问题讨论】:

    标签: java axis2


    【解决方案1】:

    就我而言,问题是由于我们使用的axis2-wsdl2code-maven-plugin 版本与axis2 库不同。

    axis2-wsdl2code-maven-plugin 版本更改为 1.6.3 解决了该问题。

    【讨论】:

    • 我遇到了完全相同的问题,我尝试使用轴 1.7.8 从 wsdl 生成客户端存根,但仍然有相同的错误。
    猜你喜欢
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    相关资源
    最近更新 更多