未知數(shù)據(jù)

          從頭看Java

             ::  :: 聯(lián)系 :: 聚合  :: 管理
            28 Posts :: 0 Stories :: 10 Comments :: 0 Trackbacks

          最近根據(jù)wsdl文件生成客戶端代碼,使用MyEclipse的xfire和axis插件都報錯,報錯如截圖;

           

          后來在網(wǎng)上搜,原因應該是服務端發(fā)布的時候使用的是axis1.2版本的,使用的版本過低.于是從網(wǎng)上下載了axis1.2的版本,再試,還是一樣報錯.


          報錯信息如下:
          <Recharge xmlns="ocs/server">
            <in0 xmlns="">
              <requestId>20090728000022</requestId>
              <requestTime>20081102000000</requestTime>
              <destinationId>13340011829</destinationId>
              <destinationAttr>2</destinationAttr>
              <balanceType>2000</balanceType>
              <rechargeUnit>0</rechargeUnit>
              <objType>5BC</objType>
              <rechargeAmount>10</rechargeAmount>
              <requestAmount>1</requestAmount>
              <cardNumber/>
              <channelID/>
              <operSystem/>
            </in0>
          </Recharge>
          java.lang.NullPointerException
                  at com.ctc.wstx.sw.BaseNsStreamWriter.doWriteDefaultNs(BaseNsStreamWriter.java:528)
                  at com.ctc.wstx.sw.SimpleNsStreamWriter.writeDefaultNamespace(SimpleNsStreamWriter.java:111)
                  at com.ctc.wstx.sw.SimpleNsStreamWriter.writeNamespace(SimpleNsStreamWriter.java:119)
                  at org.apache.axiom.om.impl.MTOMXMLStreamWriter.writeNamespace(MTOMXMLStreamWriter.java:146)
                  at org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serializeElement(StreamingOMSerializer.java:243)
                  at org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serializeNode(StreamingOMSerializer.java:76)
                  at org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serialize(StreamingOMSerializer.java:59)
                  at org.apache.axiom.om.impl.util.OMSerializerUtil.serializeByPullStream(OMSerializerUtil.java:473)
                  at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:823)
                  at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:848)
                  at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:819)
                  at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(SOAPEnvelopeImpl.java:180)
                  at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:848)
                  at org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume(OMNodeImpl.java:419)
                  at org.apache.axis2.transport.http.SOAPOverHTTPSender$AxisSOAPRequestEntity.handleOMOutput(SOAPOverHTTPSender.java:190)
                  at org.apache.axis2.transport.http.SOAPOverHTTPSender$AxisSOAPRequestEntity.writeRequest(SOAPOverHTTPSender.java:232)
                  at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:495)
                  at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1973)
                  at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:993)
                  at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)
                  at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
                  at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
                  at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
                  at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:541)
                  at org.apache.axis2.transport.http.SOAPOverHTTPSender.send(SOAPOverHTTPSender.java:119)
                  at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:335)
                  at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:204)
                  at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:674)
                  at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:237)
                  at org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:202)
                  at com.huawei.bus.ws.ct.skeleton.UvcSoapForOcsServiceStub.Recharge(UvcSoapForOcsServiceStub.java:266)
                  at test.Test.main(Test.java:56)

            把報錯的測試工程發(fā)到同事那里測試,一切正常.
            最后只好從同事那里
          發(fā)過來axis的jar包導入,最后正常.

            懷疑是axis版本不一樣,用比較工具比較兩個lib文件夾,果然axis的版本不一樣.

           

            用org.apache.axis2.Version.getVersionText() 返回版本號,一個是1.1,一個是1.1.1(才發(fā)現(xiàn)axis2的2不是版本號...).

            之前一直都用xfire,好像沒有遇到過服務端和客戶端版本不一致還會有問題.看來還是要慎用axis.

          posted on 2009-08-17 10:46 wangjc 閱讀(4004) 評論(3)  編輯  收藏 所屬分類: workspace

          Feedback

          # re: wsdl文件生成客戶端代碼問題 2010-05-21 15:44 謝康林
          你好,我出現(xiàn)了和你相同的問題,想咨詢下你具體的解決方法。我的QQ:285843912,看到了留言后加我,感激不盡啊!  回復  更多評論
            

          # re: wsdl文件生成客戶端代碼問題 2010-05-21 18:24 wangjc0801
          @謝康林
          這個是很久以前弄的了,原因就是axis的版本不對,最后保持服務端和客戶端的版本一致,應該就沒問題了.希望能幫到你  回復  更多評論
            

          # re: wsdl文件生成客戶端代碼問題[未登錄] 2012-04-17 22:07
          你好,我出現(xiàn)了和你相同的問題,想咨詢下你具體的解決方法。我的郵箱471607572@qq.com,看到了把jar包發(fā)到郵箱,感激不盡啊!

            回復  更多評論
            

          主站蜘蛛池模板: 淮安市| 绥化市| 盐边县| 元阳县| 凤台县| 衢州市| 共和县| 太白县| 呈贡县| 福清市| 松溪县| 玛纳斯县| 垫江县| 永泰县| 宽甸| 鹰潭市| 黔西县| 南华县| 朝阳县| 永顺县| 泾川县| 图木舒克市| 昆明市| 城固县| 梅河口市| 北碚区| 水城县| 崇信县| 宁强县| 临潭县| 渭南市| 九龙县| 呈贡县| 乐业县| 西林县| 宜城市| 枞阳县| 罗城| 定安县| 金湖县| 和林格尔县|