胖熊熊

          得到多少又失去了什么

          CXF 2.0 學習筆記-2(客戶端)

              CXF 2.0 學習筆記-1(服務端)  中生成了服務端,現在把服務端的wsdl保存到本地(直接把Http://xxx/ws/xxx?wsdl 另存為wsdl文件) 。
             我們要根據服務端的wsdl來生成客戶端調用的文件,這樣需要用到CXF BIN目錄下wsdl2java.bat 。
             wsdl2java 參數如下:

          wsdl2java -fe <frontend name>* -db <data binding name>* -wv <[wsdl version]>
          -p 
          <[wsdl namespace =]Package Name>* -sn <service-name> -b <binding-name>
          -catalog 
          <catalog-file-name> -d <output-directory> -compile 
          -classdir 
          <compile-classes-directory> -impl -server -client -all 
          -autoNameResolution -defaultValues
          <=class name for DefaultValueProvider> -ant 
          -nexclude 
          <schema namespace [= java packagename]>*  -exsh <(true, false)>
          -dns 
          <(true, false)> -dex <(true, false)> -validate -keep 
          -wsdlLocation 
          <wsdlLocation attribute> -xjc<xjc arguments> -noAddressBinding -h 
          -v -verbose -quiet 
          <wsdlurl>
            具體可參考官方網站:
             http://cwiki.apache.org/CXF20DOC/wsdl-to-java.html

            我們在命令行下輸入:wsdl2java -p hs.cxf.client  HelloWorld.wsdl 來指定生成的客戶端包目錄。

           客戶端調用代碼
          try {
                      JaxWsProxyFactoryBean  factory 
          = new JaxWsProxyFactoryBean (); 
                      factory.setServiceClass(WebServiceSample.
          class);
                      factory.setAddress(
          "http://127.0.0.1:9080/cxfTest/ws/HelloWorld");
                      Object obj 
          = factory.create();
                      System.out.println(obj 
          == null ? "NULL":obj.getClass().getName());
                      
          if(obj != null){
                          WebServiceSample ws 
          = (WebServiceSample)obj;
                          String str 
          = ws.say("test");
                          System.out.println(str);
                          
                          str 
          = ws.say("1111");
                          System.out.println(str);
                          
                          User u 
          = new User();
                          JAXBElement 
          <String> je = 
                              
          new JAXBElement <String>(
                                      
          new QName("http://bean.cxf.hs","name"),
                                      String.
          class,"張三"); 
                          u.setName(je);
                          str 
          = ws.sayUserName(u);
                          System.out.println(str);
                          
                          
          //通過對象來交互
                          ReqBean req = new ReqBean();
                          req.setExp(
          new JAXBElement <String>(
                                      
          new QName("http://bean.cxf.hs","exp"),
                                      String.
          class,"<exp>111<exp>"));
                          req.setSeqId(
          new JAXBElement <String>(
                                  
          new QName("http://bean.cxf.hs","seqId"),
                                  String.
          class,"12345678"));
                          RespBean resp 
          = ws.action(req);
                          System.out.println(
          "resp_id:"+resp.getRespId().getValue());
                          System.out.println(
          "resp_exp:"+resp.getExp().getValue());
                      }

                  }
           catch (Exception ex) {
                      ex.printStackTrace();
                  }

          運行此代碼,查看結果即可

          依賴包如下:
          cxf-2.1.4.jar
          jaxb-api-2.1.jar
          geronimo-annotation_1.0_spec-1.1.1.jar
          geronimo-ws-metadata_2.0_spec-1.1.2.jar
          jaxws-api.jar
          stax-api-1.0-2.jar
          jaxb-impl-2.1.9.jar
          geronimo-activation_1.1_spec-1.0.2.jar
          xml-resolver-1.2.jar
          XmlSchema-1.4.3.jar
          wsdl4j-1.6.2.jar
          saaj-api-1.3.jar
          jsr173_1.0_ri.jar
          其中jsr從bean下載:http://ftpna2.bea.com/pub/downloads/jsr173.jar (注意解壓)

          posted on 2009-03-16 17:57 fatbear 閱讀(5193) 評論(1)  編輯  收藏 所屬分類: web service

          評論

          # re: CXF 2.0 學習筆記-2(客戶端) 2011-08-18 15:59 淘寶女裝

          集成spring一直沒成功  回復  更多評論   

          主站蜘蛛池模板: 额尔古纳市| 桐梓县| 安化县| 新安县| 金湖县| 廉江市| 安丘市| 长春市| 高州市| 沙雅县| 许昌市| 聂荣县| 五峰| 民权县| 丹寨县| 定西市| 临朐县| 泗水县| 广元市| 府谷县| 攀枝花市| 富川| 丽江市| 隆尧县| 鹤庆县| 德安县| 景东| 桂阳县| 普兰店市| 任丘市| 潜江市| 建瓯市| 阿坝| 泗阳县| 遂溪县| 侯马市| 涪陵区| 石泉县| 隆化县| 苏尼特右旗| 郸城县|