posts - 22, comments - 32, trackbacks - 0, articles - 73
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          CXF 客戶端調用異常解決

          Posted on 2012-05-22 14:00 為自己代言 閱讀(2625) 評論(0)  編輯  收藏
           org.apache.cxf.binding.soap.SoapFault: "http://schemas.xmlsoap.org/wsdl/" is  not a valid SOAP version.

          在寫好服務器端測試沒有問題,在客戶端調用時候出現上面錯誤,經過分析原面如下:

          1:CXF 有兩種客戶端調用,一種是動態工廠形式, 第二種是通過CXF 中wsdl2java 命令先把客戶端類生成到本地,在調用;

          第一種: 1:  用org.apache.cxf.jaxws.JaxWsProxyFactoryBean配置

          <bean id="msgWebServiceSoap" class="com.jd.sms.MsgWebServiceSoap" factory-bean="msgClientFactory"
                    factory-method="create"/>
              <bean id="msgClientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
                  <property name="serviceClass" value="com.jd.sms.MsgWebServiceSoap"/>
                  <property name="address" value="    </bean>


          第二種: 2:  

             用標簽<jaxws:client直接配置:

          <jaxws:client id="orderClient" serviceClass=

                          "demo.order.OrderProcess" address=

                           "http://localhost:8080/orderapp/OrderProcess" />

          以上兩種webService 的接口地址都不需要在后面加上?wsdl這個后綴,因為這樣spring 調用時候要先通過 CXF/bin 命令行wsdl2java 這個命令生成本地客戶端調用,把生成的本地客戶端代碼復制到客戶端工程中去,在spring 配置文件中通過上面的任意一種配置方式選擇配置,即可調用。
          以上CXF異常,就是用這種方式調用,但是接口URL 多了?wsdl后綴的原面;
          附wsdl2java 使用方式cd CXF/bin目錄下:

          其作用上面的build.xml作用一樣。
          附加:wsdl2java用法:
          wsdl2java -p com -d src -all aa.wsdl
          -p 指定其wsdl的命名空間,也就是要生成代碼的包名:
          -d 指定要產生代碼所在目錄
          -client 生成客戶端測試web service的代碼
          -server 生成服務器啟動web service的代碼
          -impl 生成web service的實現代碼
          -ant 生成build.xml文件



          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 右玉县| 山丹县| 武穴市| 科技| 祥云县| 株洲县| 隆德县| 驻马店市| 泰和县| 正阳县| 大竹县| 温泉县| 玉树县| 宁城县| 宁夏| 呼伦贝尔市| 新化县| 即墨市| 肇源县| 司法| 青龙| 扶绥县| 海城市| 阿克苏市| 星座| 胶南市| 安顺市| 通州市| 通江县| 怀安县| 教育| 东海县| 堆龙德庆县| 济阳县| 马龙县| 饶河县| 长宁区| 明光市| 信丰县| 安义县| 金华市|