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

          從頭看Java

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

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

           

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


          報(bào)錯(cuò)信息如下:
          <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)

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

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

           

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

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

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

          Feedback

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

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

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

            回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 长沙县| 迭部县| 云南省| 武平县| 板桥市| 湖州市| 鄂州市| 淄博市| 诸暨市| 措勤县| 永修县| 通道| 平阴县| 象山县| 千阳县| 孝感市| 丰原市| 济宁市| 资阳市| 枣强县| 奉化市| 武鸣县| 固原市| 新民市| 如皋市| 汶上县| 河源市| 曲水县| 观塘区| 西青区| 神池县| 中宁县| 江川县| 加查县| 桂阳县| 洪雅县| 铜鼓县| 岢岚县| 城固县| 抚州市| 玉门市|