隨筆-61  評(píng)論-159  文章-0  trackbacks-0
           在使用JDK6自帶的webservice特性之前,項(xiàng)目中接口開(kāi)發(fā)有用到Axis2、XFire、CXF等webservice框架發(fā)布通過(guò)獲取相關(guān)的wsdl文件即可實(shí)現(xiàn)遠(yuǎn)程通訊數(shù)據(jù)交互。
           Axis2配合相關(guān)的IDE生成服務(wù)并發(fā)布到服務(wù)器上面相當(dāng)簡(jiǎn)單和根據(jù)選擇其中之一的wsdl引擎生成客戶端調(diào)用java類,感覺(jué)類庫(kù)jar包比較龐大應(yīng)用起來(lái)也比較復(fù)雜。
           XFire是比較強(qiáng)大的webservice框架,容易與web容器整合,以及spring提供整合支持。
          CXF是apache收購(gòu)XFire后改造產(chǎn)物,功能也相當(dāng)強(qiáng)大。
           使用JDK6自帶的webservice特性后,深感部署之簡(jiǎn)單,真正的輕量級(jí),可以使你集中盡力解決服務(wù)端的相關(guān)功能設(shè)計(jì)與實(shí)現(xiàn)。
           下面介紹JDK6自帶的Webservice特性例子:

            IDE:eclipse3.6+ javaee版
          新建一個(gè)java工程后,建如下類即可簡(jiǎn)單實(shí)現(xiàn)webservice:

           1import javax.jws.WebService;
           2import javax.xml.ws.Endpoint;
           3
           4@WebService
           5public class HelloWorld {
           6    public String sayHello() 
           7        return "helloworld";
           8        }
           
           9        public static void main(String[] args) 
          10        //發(fā)布一個(gè)WebService 
          11        Endpoint.publish("http://localhost:9090/HelloWorld"new HelloWorld()); 
          12        }
           
          13}

          14

          啟動(dòng)main方法即可發(fā)布一個(gè)webservice服務(wù),通過(guò)瀏覽器輸入http://localhost:9090/HelloWorld?wsdl即可訪問(wèn)。
          注:HelloWorld是一個(gè)普通類,只是在類的前面第4行加了注解@WebService,發(fā)布是在第11行,http://localhost:9090/HelloWorld是發(fā)布服務(wù)地址,其中new HelloWorld()是服務(wù)類。
               在實(shí)際項(xiàng)目開(kāi)發(fā)中可以服務(wù)地址從硬編碼中抽離處理,寫(xiě)到配置文件或者數(shù)據(jù)庫(kù)中方便維護(hù)管理,修改地址從前服務(wù)即可。
           



          -------------------------------------------------------------------------------------------------
          PS:本博客文章,如果沒(méi)有注明是有“轉(zhuǎn)”字樣,屬于本人原創(chuàng)。如果需要轉(zhuǎn)載,務(wù)必注明作者文章的詳細(xì)出處地址,否則不允許轉(zhuǎn)載,多謝合作!
          posted on 2011-05-11 15:48 apple0668 閱讀(5134) 評(píng)論(6)  編輯  收藏 所屬分類: java

          評(píng)論:
          # re: JDK6中JWS自帶webservice應(yīng)用 2011-05-12 09:43 | itwangxinli
          看起來(lái)挺美,但是客戶端呢?而且
          Endpoint.publish("http://localhost:9090/HelloWorld", new HelloWorld()); 這個(gè)原理能解釋下嗎?比如輸入url,那么他后天用的是什么服務(wù)器呢?
          客戶端怎么訪問(wèn)呢?
          期待解答
            回復(fù)  更多評(píng)論
            
          # re: JDK6中JWS自帶webservice應(yīng)用 2011-05-12 13:35 | apple0668
          @itwangxinli
          JDK6中用到的是JWS方式的webservice,有興趣看源碼。上面有注解就是@Webservice就是引入相關(guān)支持。

          對(duì)服務(wù)器沒(méi)有要求,你可以自己寫(xiě)一個(gè)main方法打包或者集成到web上面即可。

          客戶端訪問(wèn)方式,你可以通過(guò)通過(guò)瀏覽器輸入http://localhost:9090/HelloWorld?wsdl 得到wsdl文件,通過(guò)第三方類庫(kù)或者工具生成客戶端。  回復(fù)  更多評(píng)論
            
          # re: JDK6中JWS自帶webservice應(yīng)用[未登錄](méi) 2011-07-04 14:53 | sodarfish
          博主您好,請(qǐng)問(wèn)JDK自帶的webservice 性能怎樣? 他是自己實(shí)現(xiàn)了一個(gè)web server么? 謝謝

          sodarfish@163.com  回復(fù)  更多評(píng)論
            
          # re: JDK6中JWS自帶webservice應(yīng)用 2011-08-03 21:04 | 老吳
          請(qǐng)問(wèn)有人做過(guò)用這個(gè)傳文件的例子嗎?  回復(fù)  更多評(píng)論
            
          # re: JDK6中JWS自帶webservice應(yīng)用[未登錄](méi) 2012-02-21 08:59 | a
          怎么和SSH整合  回復(fù)  更多評(píng)論
            
          # re: JDK6中JWS自帶webservice應(yīng)用 2013-01-05 17:19 | jiny
          確實(shí)很簡(jiǎn)潔啊  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 巴楚县| 镇坪县| 北辰区| 西丰县| 隆尧县| 天门市| 古蔺县| 丹寨县| 姚安县| 玛沁县| 廉江市| 恩平市| 锡林郭勒盟| 惠州市| 政和县| 虹口区| 且末县| 漠河县| 宜兰县| 滁州市| 木里| 九江县| 普陀区| 资兴市| 南投县| 通河县| 洪雅县| 新宾| 奈曼旗| 夏邑县| 营山县| 和平区| 温宿县| 宁明县| 横山县| 濮阳县| 东兴市| 北海市| 江都市| 元江| 洛隆县|