隨筆 - 119  文章 - 3173  trackbacks - 0
          <2007年1月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          交友莫獨酒,茅臺西鳳游。
          口干古井貢,心徜洋河流。
          稱多情杜康,趟無量雙溝。
          贊中華巍巍,無此不銷愁。

          常用鏈接

          留言簿(68)

          隨筆分類(136)

          隨筆檔案(122)

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 525585
          • 排名 - 93

          最新評論

          Java6 WebServices (一)服務端這篇文章中和大家分享了Java6 WebServices 服務端的寫法,光有服務端還不行,還要有客戶端才行啊。看了一些網友的相關文章,都只給出了服務端的寫法,沒有說客戶端怎么說。經過一番研究,終于搞定了客戶端,今天偶就和大家分享下。
          首先啟動Java6 WebServices (一)服務端一文中寫好的服務端。
          新建個項目。命令行到src目錄執行,
          wsimport -keep? http://localhost:8080/HelloService?wsdl
          會自動生成一些代碼。


          package?org.hermit.study.jdk.client;

          import?javax.jws.WebMethod;
          import?javax.jws.WebParam;
          import?javax.jws.WebResult;
          import?javax.jws.WebService;
          import?javax.jws.soap.SOAPBinding;


          /**
          ?*?This?class?was?generated?by?the?JAXWS?SI.
          ?*?JAX-WS?RI?2.0_02-b08-fcs
          ?*?Generated?source?version:?2.0
          ?*?
          ?
          */
          @WebService(name?
          =?"Hello",?targetNamespace?=?"http://jdk.study.hermit.org/client")
          @SOAPBinding(style?
          =?SOAPBinding.Style.RPC)
          public?interface?Hello?{


          ????
          /**
          ?????*?
          ?????*?
          @param?arg0
          ?????*?
          @return
          ?????*?????returns?java.lang.String
          ?????
          */
          ????@WebMethod
          ????@WebResult(partName?
          =?"return")
          ????
          public?String?sayHello(
          ????????@WebParam(name?
          =?"arg0",?partName?=?"arg0")
          ????????String?arg0);

          }

          package?org.hermit.study.jdk.client;

          import?java.net.MalformedURLException;
          import?java.net.URL;
          import?javax.xml.namespace.QName;
          import?javax.xml.ws.Service;
          import?javax.xml.ws.WebEndpoint;
          import?javax.xml.ws.WebServiceClient;


          /**
          ?*?This?class?was?generated?by?the?JAXWS?SI.
          ?*?JAX-WS?RI?2.0_02-b08-fcs
          ?*?Generated?source?version:?2.0
          ?*?
          ?
          */
          @WebServiceClient(name?
          =?"HelloService",?targetNamespace?=?"http://jdk.study.hermit.org/client",?wsdlLocation?=?"http://localhost:8080/HelloService?wsdl")
          public?class?HelloService
          ????
          extends?Service
          {

          ????
          private?final?static?URL?HELLOSERVICE_WSDL_LOCATION;

          ????
          static?{
          ????????URL?url?
          =?null;
          ????????
          try?{
          ????????????url?
          =?new?URL("http://localhost:8080/HelloService?wsdl");
          ????????}?
          catch?(MalformedURLException?e)?{
          ????????????e.printStackTrace();
          ????????}
          ????????HELLOSERVICE_WSDL_LOCATION?
          =?url;
          ????}

          ????
          public?HelloService(URL?wsdlLocation,?QName?serviceName)?{
          ????????
          super(wsdlLocation,?serviceName);
          ????}

          ????
          public?HelloService()?{
          ????????
          super(HELLOSERVICE_WSDL_LOCATION,?new?QName("http://jdk.study.hermit.org/client",?"HelloService"));
          ????}

          ????
          /**
          ?????*?
          ?????*?
          @return
          ?????*?????returns?Hello
          ?????
          */
          ????@WebEndpoint(name?
          =?"HelloPort")
          ????
          public?Hello?getHelloPort()?{
          ????????
          return?(Hello)super.getPort(new?QName("http://jdk.study.hermit.org/client",?"HelloPort"),?Hello.class);
          ????}

          }

          下面我們再寫個測試,看看能不能用:
          package?org.hermit.study.jdk.client.test;

          import?org.hermit.study.jdk.client.Hello;
          import?org.hermit.study.jdk.client.HelloService;


          public?class?TestClient?{
          ????
          public?static?void?main(String[]?args)?{
          ????????HelloService?service?
          =?new?HelloService();
          ????????Hello?_hello?
          =?service.getHelloPort();
          ????????System.out.println(_hello.sayHello(
          "hermit"));
          ????}
          }
          執行。
          控制臺輸出:
          hello:hermit

          ok!搞定。
          java6搞定web service就這么簡單。。。。。。。。。。。。。。。。。。。。。。。。。。

          xfire危險了。。。。。。。。。。。。。。。。。。。。。。。。
          posted on 2006-12-21 10:06 交口稱贊 閱讀(7070) 評論(7)  編輯  收藏 所屬分類: Java6

          FeedBack:
          # re: Java6 WebServices (二)客戶端 2006-12-21 21:45 關關
          拜讀  回復  更多評論
            
          # re: 學習Java6(一) WebServices (2)客戶端 2007-01-03 22:02 jht
          不錯,問你個問題吧,如何發布剛剛寫的服務端的WebService?我沒搞過呀  回復  更多評論
            
          # re: 學習Java6(一) WebServices (2)客戶端 2007-01-04 09:14 交口稱贊
          服務端直接運行就發布了啊  回復  更多評論
            
          # re: 學習Java6(一) WebServices (2)客戶端 2007-01-04 18:44 jht
          我的意思是難道我要一直運行服務端? 能不能搞到Tomcat里?  回復  更多評論
            
          # re: 學習Java6(一) WebServices (2)客戶端 2007-01-04 18:57 交口稱贊
          汗..........
          明白了

          偶在項目里面一直用的xfire做web service
          寫這個只是關注下新技術

          我會盡快出個整合進tomcat的例子  回復  更多評論
            
          # re: 學習Java6(一) WebServices (2)客戶端 2007-01-05 13:47 交口稱贊
          # re: 學習Java6(一) WebServices (2)客戶端[未登錄] 2007-01-26 21:45 test
          多謝多謝  回復  更多評論
            
          主站蜘蛛池模板: 林州市| 饶平县| 温宿县| 改则县| 沿河| 通许县| 江门市| 龙山县| 鄂州市| 南昌市| 乌什县| 洛川县| 茂名市| 虎林市| 永寿县| 德昌县| 通辽市| 托克托县| 平陆县| 简阳市| 任丘市| 衡山县| 石泉县| 方山县| 齐河县| 雷山县| 乌兰县| 长阳| 乌鲁木齐县| 白山市| 辽阳市| 平南县| 泗水县| 高要市| 龙口市| 宿州市| 正镶白旗| 泾川县| 三穗县| 泉州市| 伊金霍洛旗|