Create Restful Web Service With CXF 2.1.X/CXF 2.2, Part 1: create a service in Tomcat (Contine) - Create client code

Create Restful Web Service With CXF 2.1.X/CXF 2.2, Part 1: create a service in Tomcat (Contine) - Create client code

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.

你可能感兴趣的:(Create Restful Web Service With CXF 2.1.X/CXF 2.2, Part 1: create a service in Tomcat (Contine) - Create client code)