<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

       JAVA 6.0 之后,其中JDK自帶有個輕量級的web service 服務器。如果你比較細心一定發現在你安裝java的路徑下,有java webservice 的示例代碼。

       我以前也用java開發過web service ,但是當初用了一個apache 下axis 開源項目。如果axis夜進化了,反正我不認識了。不過java自帶有何必舍近求遠呢。今天我就把自己創建的最簡單java webservice 范例過程記錄下來,與大家分享。

       我用的是netbeans 6,首先建立一個java 應用程序工程,名為WebServices。建立一個服務端程序。

    package  WebServices;

    import  javax.jws. * ;
    import  javax.xml.ws.Endpoint;

    /**
     * 
    @author  hecm
     
    */
    @WebService(targetNamespace 
    =   " http://www.tkk7.com/JAVA-HE " , serviceName  =   " HelloService " )
    public   class  WSProvider
    {

       
    //  @WebResult(name = "Greetings") // 自定義該方法返回值在WSDL中相關的描述    
        @WebMethod(action  =   " sayHi " , operationName  =   " sayHi " )
        
    public  String sayHi(@WebParam(name  =   " MyName " ) String name)
        {
            
    return   " Hi, "   +  name;  // @WebParam是自定義參數name在WSDL中相關的描述

        }

        @Oneway 
    // 表明該服務方法是單向的,既沒有返回值,也不應該聲明檢查異常

        @WebMethod(action 
    =   " printSystemTime " , operationName  =   " printSystemTime " ) // 自定義該方法在WSDL中相關的描述
         public   void  printTime()
        {
            System.out.println(System.currentTimeMillis());
        }

        
    public   static   void  main(String[] args)
        {
            Thread wsPublisher 
    =   new  Thread( new  WSPublisher());
            wsPublisher.start();
        }

        
    private   static   class  WSPublisher  implements  Runnable
        {

            
    public   void  run()
            {
                
    // 發布WSProvider到http: // localhost:8888/hechangmin/WSProvider這個地址,之前必須調用wsgen命令
                
    // 生成服務類WSProvider的支持類,命令如下:
                
    // wsgen -cp . WebServices.WSProvider
                 Endpoint.publish("http://localhost:8888/JAVA-HE/WSProvider", new WSProvider());
         
    }
        }
    }

    當然建立對應的包,就不用說了。
    然后編譯文件。
    進入命令提示符下,進入classes目錄,運行:wsgen -cp . WebServices.WSProvider

    可以看到將剛才的class 生成了幾個java文件和class文件。

    現在要做的是發布ws到http://localhost:8888/chinajash/WSProvider
    而實際上的動作就是:Endpoint.publish("http://localhost:8888/chinajash/WSProvider",new WSProvider());
    當然直接運行WSProvider 。

    然后輸入http://localhost:8888/JAVA-HE/WSProvider?wsdl

    就已經查看到生成的wsdl (webservice 描述語言)。

    也就是服務端就OK了。

    保持運行。編寫一個測試客戶端:

    首先選擇項目,右鍵新建 web服務客戶端。其中ws url填入剛才生成的wsdl地址:
    http://localhost:8888/JAVA-HE/WSProvider?wsdl

    (實際上:和wsimport http://localhost:8888/JAVA-HE/WSProvider?wsdl 一樣的效果)


    產生一個效果:在classes下 按照 之前指定的名字空間產生的包下(目錄結構)生成了7個幫助class。

    然后我們建立一個包 client 建立測試文件:

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     
    */

    package  client;

    import  net.blogjava.java_he. * ;
    /**
     *
     * 
    @author  hecm
     
    */
    public   class  Test {
        
    public   static   void  main(String args[])
        {
            HelloService hs 
    =   new  HelloService();
            WSProvider ws 
    =  hs.getWSProviderPort();
            System.out.println(ws.sayHi(
    " hechangmin " ));
            ws.printSystemTime();
        }

    }


    運行這個測試類:
    Hi,hechangmin

    輸出了。順利完成!

    一點個人經驗,你發布的地址最好寫成可配置。還有就是wsdl 中會嚴格按照你指定的url來訪問,比如你指定的127.0.0.1 那么你用本機IP的時候也許并不能順利訪問。

    posted on 2008-07-08 02:59 -274°C 閱讀(64563) 評論(3)  編輯  收藏 所屬分類: JAVAWebServiceJSP


    FeedBack:
    # re: 實戰 JDK 6.0 自帶web service
    2008-07-08 11:39 | 如坐春風
    不錯。  回復  更多評論
      
    # re: 實戰 JDK 6.0 自帶web service
    2008-07-10 13:27 | 44you
    還沒用過,了解一下  回復  更多評論
      
    # re: 實戰 JDK 6.0 自帶web service [未登錄]
    2011-08-30 22:02 | peter
    看了你的文章,有些疑問。加我qq : 312908671 討論.  回復  更多評論
      

    常用鏈接

    留言簿(21)

    隨筆分類(265)

    隨筆檔案(242)

    相冊

    JAVA網站

    關注的Blog

    搜索

    •  

    積分與排名

    • 積分 - 914346
    • 排名 - 40

    最新評論

    主站蜘蛛池模板: 久久久久亚洲Av无码专| 亚洲精品无码Av人在线观看国产 | 久久久久亚洲av成人无码电影| 亚洲国产精品无码久久| 成人黄软件网18免费下载成人黄18免费视频| 久久久久亚洲AV无码网站| 一级毛片免费观看不卡视频| 亚洲精品乱码久久久久久久久久久久| 国内精品99亚洲免费高清| 亚洲国产精品高清久久久| 久草视频在线免费看| 亚洲av永久无码精品国产精品| 久久免费视频网站| 亚洲麻豆精品果冻传媒| 国产成人免费网站| 亚洲精华液一二三产区| 亚洲成A人片在线观看中文| a级毛片免费网站| 亚洲AV无码一区二区二三区入口 | 中文字幕无码日韩专区免费| 久久精品九九亚洲精品| 一个人看的www在线观看免费| 亚洲欧美日本韩国| 亚洲免费在线观看| 久久久久久影院久久久久免费精品国产小说 | 久久精品国产亚洲7777| 国产精品99精品久久免费| 亚洲国产品综合人成综合网站| 女人18毛片水真多免费看| 青青青视频免费观看| 久久av无码专区亚洲av桃花岛| 免费观看成人毛片a片2008| 黄色三级三级免费看| 亚洲狠狠综合久久| 午夜a级成人免费毛片| 中文字幕一区二区三区免费视频| 亚洲视频在线不卡| 亚洲国产一区二区三区| 182tv免费视视频线路一二三 | 亚洲综合国产成人丁香五月激情| 又粗又硬又黄又爽的免费视频|