未知數(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 閱讀(4010) 評(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)論
            

          主站蜘蛛池模板: 南涧| 东阿县| 南木林县| 罗甸县| 石阡县| 弥渡县| 固原市| 隆子县| 外汇| 崇文区| 革吉县| 望谟县| 尼木县| 芜湖市| 东乡县| 呼和浩特市| 吴桥县| 邮箱| 永顺县| 逊克县| 玛沁县| 昆明市| 交城县| 台江县| 辽中县| 平顶山市| 自治县| 兰西县| 南乐县| 合川市| 迁安市| 仪征市| 长沙市| 开阳县| 横山县| 察哈| 虞城县| 绥江县| 峨眉山市| 扎鲁特旗| 团风县|