未知數據

          從頭看Java

             ::  :: 聯系 :: 聚合  :: 管理
            28 Posts :: 0 Stories :: 10 Comments :: 0 Trackbacks

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

           

          后來在網上搜,原因應該是服務端發布的時候使用的是axis1.2版本的,使用的版本過低.于是從網上下載了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)

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

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

           

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

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

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

          Feedback

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

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

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

            回復  更多評論
            

          主站蜘蛛池模板: 陵川县| 玛曲县| 江西省| 赤城县| 淳化县| 靖州| 尼勒克县| 宣武区| 华阴市| 合川市| 沅陵县| 陈巴尔虎旗| 乐陵市| 开原市| 石泉县| 利津县| 德令哈市| 三门峡市| 芷江| 汝城县| 新和县| 凤城市| 桐柏县| 田林县| 龙陵县| 礼泉县| 阿克苏市| 敖汉旗| 柳河县| 龙南县| 孝昌县| 昌邑市| 巴中市| 民权县| 滨州市| 房产| 马尔康县| 湖南省| 清河县| 陆河县| 东港市|