CXF also supports building REST style Web Services using the JAX-WS Provider/Dispatch and XML binding. A sample can be found from samples\restful. The REST server provides following services:
A RESTful customer service is provided on URL http://localhost:9000/customerservice/customers. Users access this URI to query or update customer info.
A HTTP GET request to URL http://localhost:9000/customerservice/customers returns a list of customer hyperlinks. This allows client navigates through the application states. The returned XML document:
Code Block | ||||
---|---|---|---|---|
| ||||
<Customers> <Customer href="http://localhost/customerservice/customer?id=1234"> <id>1234</id> </Customer> <Customer href="http://localhost/customerservice/customer?id=1235"> <id>1235</id> </Customer> <Customer href="http://localhost/customerservice/customer?id=1236"> <id>1236</id> </Customer> </Customers> |
A HTTP GET request to URL http://localhost:9000/customerservice/customers?id=1234 returns a customer instance whose id is 1234. The returned XML document:
Code Block | ||||
---|---|---|---|---|
| ||||
<Customer> <id>1234</id> <name>John</name> <phoneNumber>123456</phoneNumber> </Customer> |
A HTTP POST request to URL http://localhost:9000/customerservice/customers with the data:
Code Block | ||||
---|---|---|---|---|
| ||||
<Customer> <id>1234</id> <name>John</name> <phoneNumber>234567</phoneNumber> </Customer> |
updates customer 1234 with the data provided.
The client code demonstrates how to send HTTP POST with XML data using JAX-WS Dispatch and how to send HTTP GET using URL.openStream(). The server code demonstrates how to build a RESTful endpoints through JAX-WS Provider interface.