乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      CXF Rest Client

       richsky 2012-04-29

      CXF Rest Client

      407人閱讀 評論(0) 收藏 舉報
      接上一篇 http://sunbo1591./blog/765869

      上篇說了怎么用cxf發(fā)布restful webservice,由于瀏覽器只能對該service發(fā)送http的GET請求,所以如果想對服務器上的數據,還需要實現(xiàn)客戶端。
      客戶端的實現(xiàn)方式有無數種。。??梢允?net,c++,還有很多java框架甚至socket。這里用cxf給的一個WebClient類來實現(xiàn):
      Java代碼  收藏代碼
      1. package com.client;  
      2.   
      3. import org.apache.cxf.jaxrs.client.WebClient;  
      4.   
      5. import com.DAO.Room;  
      6.   
      7. public class Client {  
      8.     static WebClient client;  
      9.   
      10.     public static void main(String[] args) {  
      11.         client = WebClient.create("http://localhost:9999/");  
      12.         put();  
      13.     }  
      14.   
      15.     static void get() {  
      16.         Room room = client.path("roomservice/room/001")  
      17.                 .accept("application/xml").get(Room.class);  
      18.         System.out.println("get the room which id is:" + room.getId());  
      19.     }  
      20.   
      21.     static void post() {  
      22.         Room room = new Room();  
      23.         room.setId("003");  
      24.         client.path("roomservice/room").accept("application/xml")  
      25.                 .post(room, Room.class);  
      26.     }  
      27.   
      28.     static void delete() {  
      29.         client.path("roomservice/room/002").accept("application/xml").delete();  
      30.     }  
      31.   
      32.     static void put() {  
      33.         Room room = new Room();  
      34.         room.setId("006");  
      35.         client.path("roomservice/room/003").accept("application/xml").put(room);  
      36.     }  
      37. }  




      這個類用起來很簡單,給WebClient的靜態(tài)方法create一個參數,該參數是服務器地址的字符串。
      client.path("roomservice/room/001")
      .accept("application/xml").get(Room.class);
      這句代碼,是告訴client要訪問的restful資源,以及格式,最后的get,也就是對這個資源發(fā)送一個http GET請求,參數Room.class是告訴client要以什么方式接受服務器發(fā)送來的response。(服務器端和客戶端的格式應該一致,所以這里用的和服務器端用的是一個POJO,如果客戶端不是用CXF,那么應該定義一個scheme,這樣才能讓雙方明白來回發(fā)送的XML應該怎么處理,暫時也沒深入,回頭再研究。)
      DELETE方法很好理解,就是把你指定的資源刪除掉,所以delete()不用帶參數。
      POST,PUT方法有點不同,

      post(Object body, Class<Room> )
      put(Object body, Class<Room> )

      第一參數是你要傳給服務器的POJO,第二個參數是告訴client要將server返回的response轉化為的POJO的類型。第二個參數可以不寫,如果不寫,收到的將是一個response。

      調用這些操作后,可以通過http://localhost:9999/roomservice/room/  查看結果。

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多