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

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

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

    ゞ沉默是金ゞ

    魚離不開水,但是沒有說不離開哪滴水.
    posts - 98,comments - 104,trackbacks - 0
       WebService是SOA的一種較好的實現方式,它將應用程序的不同功能單元通過中立的契約(獨立于硬件平臺、操作系統和編程語言)聯系起來,使得各種形式的功能單元更好的集成。

    W3C對他的定義是:

        A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages......"

        Web service是一個軟件系統,為了支持跨網絡的機器之間相互操作交互而設計。它有一個機器可識別的描述格式(特別是WSDL)。不同的系統之間可以通過SOAP消息在規定的方式下相互調用。(英文不好,請指正?。?/span>

        簡單的說,WebService是一種獨立于特定語言、特定平臺,基于網絡的、分布式的模塊化組件。是一個能夠使用xml消息通過網絡來訪問的Interface,這個Interface描述了一組可訪問的操作。

    WebService一般分為兩種:

        REST式WebService,基于HTTP協議;

        RPC式WebService,基于SOAP協議,不過SOAP也是基于HTTP傳輸的。

      狹義上的WebService是指第二種RPC式的WebService,也就是我們常說的那種。

    JAVA中有三種WebService規范,分別是JAX-WS(JAX-RPC)、JAX-RS、JAXM&SAAJ。

        這里先說JAX-WS(Java API For XML-WebService),JDK1.6 自帶的版本為JAX-WS2.1,其底層支持為JAXB。早期的JAVA Web服務規范JAX-RPC(Java API ForXML-Remote Procedure Call)目前已經被JAX-WS 規范取代,JAX-WS 是JAX-RPC 的演進版本,但JAX-WS 并不完全向后兼容JAX-RPC。

        廢話不多說了,先來寫一個最簡單的例子:

    服務器端:

        在想要發布為WebService的類上加上注解@WebService,這個類的方 法就變為WebService的方法了,再通過Endpoint的publish方法,發布這個服務,到此,一個最簡單的WebService搞定。運行 main方法,在瀏覽器里輸入”http://localhost:8080/Service/Hello?wsdl 會看到你的WSDL信息。

     


        不過需要注意一 下, 有的同學如果不加@SOAPBinding(style = SOAPBinding.Style.RPC)這行代碼會報錯:

    com.sun.xml.internal.ws.model.RuntimeModelerException: runtime modeler error: Wrapper class com.why.webservice.jaxws.SayHello is not found. Have you run APT to generate them?

    網上資料說只要將JDK升級到1.6u17就可以了,我直接升級到了1.6u25(1.6.0_25-b06),問題解決!

    package org.duke.jaxws.server;

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

    @WebService
    public class Hello {

        
    public String sayHello(String name) {
            
    return "Hello " + name;
        }

        
    public static void main(String[] args){
            Endpoint.publish(
    "http://localhost:8080/Service/Hello"new Hello());
            System.out.println(
    "Success");
        }
    }

     

    客戶端:

        在命令行輸入命令 wsimport -s[文件夾名] -p [包名] -keep [發布的服務地址?wsdl] 生成客戶端代碼,如生成本例的客戶端代碼”
    wsimport -s src -p org.duke.jaxws.client -keep http://localhost:8080/Service/Hello?wsdl",當然,前提是你已經配好了JAVA環境變量。
    利用這些生成的客戶端代碼,就可以調用這個WebService服務了:

    package org.duke.jaxws.test;

    import org.duke.jaxws.client.Hello;
    import org.duke.jaxws.client.HelloService;

    public class HelloClient {
        
    public static void main(String[] args) {
            Hello hello 
    = new HelloService().getHelloPort();  
            String s 
    = hello.sayHello("World!");  
            System.out.println(s); 
        }

    }

     

     

    執行代碼,輸出:Hello World!

     


     

    posted on 2012-06-27 12:38 ゞ沉默是金ゞ 閱讀(1339) 評論(0)  編輯  收藏 所屬分類: webservice

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


    網站導航:
     
    主站蜘蛛池模板: 黑人粗长大战亚洲女2021国产精品成人免费视频 | 国产亚洲精久久久久久无码77777| 国产gav成人免费播放视频| 国产高清免费观看| 亚洲人成亚洲人成在线观看| 亚洲日本在线看片| 最新亚洲精品国偷自产在线| 国产AV无码专区亚洲AV蜜芽| 暖暖在线日本免费中文| 亚洲卡一卡2卡三卡4卡无卡三| 久久精品电影免费动漫| 国产精品另类激情久久久免费| 午夜亚洲国产理论片二级港台二级| 黄网站色视频免费在线观看的a站最新| 好吊妞788免费视频播放| www国产亚洲精品久久久日本| 亚洲欧洲另类春色校园小说| 日韩毛片免费一二三| h视频在线观看免费完整版| 国产免费啪嗒啪嗒视频看看| 特级毛片全部免费播放a一级| 黄色成人网站免费无码av| 国产gv天堂亚洲国产gv刚刚碰| 日本黄色动图免费在线观看| 亚洲午夜成激人情在线影院 | 黄色短视频免费看| 国产在线国偷精品产拍免费| 亚洲国产AV无码一区二区三区| 一级毛片免费播放| 亚洲一区二区三区在线观看精品中文 | 国产精品美女久久久免费| 午夜视频免费成人| 国产裸体美女永久免费无遮挡| 亚洲国产成人久久综合一| 三年片在线观看免费大全| 亚洲色图在线播放| 嫩草影院在线免费观看| 久久久久免费视频| 亚洲最大中文字幕无码网站| 久久久高清免费视频| 亚洲三级视频在线观看|