隨筆 - 41  文章 - 29  trackbacks - 0
          <2008年11月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          常用鏈接

          留言簿(5)

          隨筆分類(28)

          隨筆檔案(23)

          收藏夾(6)

          Inside JVM

          Java

          java performance

          Solr

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          The previous message only explains how to create service, this message will describe how to create client and invoke server side. Actually, JSR-311 only defined the server API, so, each vendor will have different ideas on client. But one common way is to use Apache Http Common Client lib. Please see following examples.

          1. GET a customer

          // Sent HTTP GET request to query customer info

          System.out.println(
          "Sent HTTP GET request to query customer info");

          URL url 
          = new URL("http://localhost:8080/vendor_search/services/customerservice/customers/123");

          InputStream in 
          = url.openStream();

          System.out.println(getStringFromInputStream(in)); 
          //NOTE, return an input stream, you need convert xml to Java Object by yourself
          2. Use PUT to update a customer


          System.out.println("Sent HTTP PUT request to update customer info");

          Client client 
          = new Client();

          String inputFile 
          = client.getClass().getResource("update_customer.txt").getFile();

          File input 
          = new File(inputFile);

          PutMethod put 
          = new PutMethod("http://localhost:8080/vendor_search/services/customerservice/customers");

          RequestEntity entity 
          = new FileRequestEntity(input, "text/xml; charset=ISO-8859-1");

          put.setRequestEntity(entity);

          HttpClient httpclient 
          = new HttpClient();



          try {

          int result = httpclient.executeMethod(put);

          System.out.println(
          "Response status code: " + result);

          System.out.println(
          "Response body: ");

          System.out.println(put.getResponseBodyAsString());

          finally {

          // Release current connection to the connection pool once you are

          // done

          put.releaseConnection();

          }
          3. Use POST to add a customer

          System.out.println(
          "Sent HTTP POST request to add customer");

          inputFile 
          = client.getClass().getResource("add_customer.txt").getFile();

          input 
          = new File(inputFile);

          PostMethod post 
          = new PostMethod("http://localhost:8080/vendor_search/services/customerservice/customers");

          post.addRequestHeader(
          "Accept" , "text/xml");

          entity 
          = new FileRequestEntity(input, "text/xml; charset=ISO-8859-1");

          post.setRequestEntity(entity);

          httpclient 
          = new HttpClient();



          try {

          int result = httpclient.executeMethod(post);

          System.out.println(
          "Response status code: " + result);

          System.out.println(
          "Response body: ");

          System.out.println(post.getResponseBodyAsString());

          finally {

          // Release current connection to the connection pool once you are

          // done

          post.releaseConnection();

          }

          So, for this way provided by Apach Common Http Client, the user still need think about the convention from XML to POJO. It is not so convenience. We will provide a utility class to simply this process.

          posted on 2008-11-05 22:48 Justin Chen 閱讀(1847) 評論(0)  編輯  收藏 所屬分類: Rest

          FeedBack:
          # re: Create Restful Web Service With CXF 2.1.X/CXF 2.2, Part 1: create a service in Tomcat (Contine) - Create client code 2008-11-05 22:53 小Xiong
          全英! 嗨! 具有很高的挑戰性!  回復  更多評論
            
          主站蜘蛛池模板: 和平区| 东丰县| 赣榆县| 仁怀市| 英超| 镇安县| 遂平县| 平谷区| 海口市| 景东| 青岛市| 临沂市| 临汾市| 南乐县| 陆良县| 板桥市| 凌源市| 嘉鱼县| 湖南省| 宾阳县| 乳山市| 天长市| 阜南县| 福海县| 林芝县| 蒲江县| 获嘉县| 项城市| 威宁| 定结县| 宜都市| 密云县| 阳信县| 迁西县| 拜城县| 海阳市| 怀化市| 曲沃县| 乡宁县| 黑龙江省| 泗洪县|