| Spring REST sample project |
| ========================== |
| |
| This sample is a simple REST service implemented as an OSGi standard Web Application |
| Bundle and using Spring MVC with annotations. For more information, refer to: |
| |
| org.eclipse.virgo.samples.rest/src/main/java/org/eclipse/virgo/samples/rest/RestController.java |
| |
| It was tested with Virgo Server for Apache Tomcat 3.6.0.RELEASE on Java 6. |
| |
| You can build and deploy it from the command line or in Eclipse. |
| |
| |
| Building and Deploying from the Command Line |
| ============================================ |
| |
| Pre-req's: Java 6 or later and Ant 1.8.x or later (tested with 1.8.2). |
| |
| Build the sample by changing directory to org.eclipse.virgo.samples.rest and |
| issuing the command: |
| |
| $ ant clean jar |
| |
| If the build is successful, copy: |
| |
| target/artifacts/org.eclipse.virgo.samples.rest.jar |
| |
| to Virgo's pickup directory and start the server. You should see the following |
| messages: |
| |
| ... <DE0004I> Starting bundle 'org.eclipse.virgo.samples.rest' version '1.0.0'. |
| ... <WE0000I> Starting web bundle 'org.eclipse.virgo.samples.rest' version '1.0.0' with context path '/rest'. |
| ... <WE0001I> Started web bundle 'org.eclipse.virgo.samples.rest' version '1.0.0' with context path '/rest'. |
| ... <DE0005I> Started bundle 'org.eclipse.virgo.samples.rest' version '1.0.0'. |
| |
| |
| Building and Deploying from Eclipse |
| =================================== |
| |
| Pre-req's: Java 6 or later and Eclipse Java EE Juno or later (tested with Juno SR1) |
| |
| Install the Virgo IDE tooling as described here: |
| |
| http://wiki.eclipse.org/Virgo/Tooling#Installation |
| |
| Import the project org.eclipse.virgo.samples.rest into Eclipse. Define a Virgo |
| server for Virgo Server for Apache Tomcat 3.6.0.RELEASE or later. For help, refer |
| to the Virgo Tooling Guide at: |
| |
| http://www.eclipse.org/virgo/documentation/ |
| |
| Start the server. Drag and drop the project org.eclipse.virgo.samples.rest onto |
| the server. You should see the following messages on the console: |
| |
| ... <DE0004I> Starting bundle 'org.eclipse.virgo.samples.rest' version '1.0.0'. |
| ... <WE0000I> Starting web bundle 'org.eclipse.virgo.samples.rest' version '1.0.0' with context path '/rest'. |
| ... <WE0001I> Started web bundle 'org.eclipse.virgo.samples.rest' version '1.0.0' with context path '/rest'. |
| ... <DE0005I> Started bundle 'org.eclipse.virgo.samples.rest' version '1.0.0'. |
| |
| |
| Using the Spring REST Sample |
| ============================ |
| |
| From a new terminal, you can now drive the sample using curl, e.g.: |
| |
| $ curl -i -H "Accept: application/json" http://localhost:8080/rest/users/roy |
| HTTP/1.1 200 OK |
| Server: Apache-Coyote/1.1 |
| Content-Type: application/json;charset=utf-8 |
| Content-Length: 79 |
| Date: Fri, 25 Jan 2013 11:22:59 GMT |
| |
| { "name" : "Roy T. Fielding", "invention" : "Representational State Transfer" } |
| |
| $ curl -i -X PUT http://localhost:8080/rest/users/rod/Rod%20Johnson/Spring%20Framework |
| HTTP/1.1 200 OK |
| Server: Apache-Coyote/1.1 |
| Content-Length: 0 |
| Date: Fri, 25 Jan 2013 11:24:35 GMT |
| |
| $ curl -i -H "Accept: application/json" http://localhost:8080/rest/users/rod |
| HTTP/1.1 200 OK |
| Server: Apache-Coyote/1.1 |
| Content-Type: application/json;charset=utf-8 |
| Content-Length: 60 |
| Date: Fri, 25 Jan 2013 11:25:11 GMT |
| |
| { "name" : "Rod Johnson", "invention" : "Spring Framework" } |
| |
| $ curl -i -H "Accept: application/json" http://localhost:8080/rest/users |
| HTTP/1.1 200 OK |
| Server: Apache-Coyote/1.1 |
| Content-Type: application/json;charset=utf-8 |
| Content-Length: 34 |
| Date: Fri, 25 Jan 2013 11:25:37 GMT |
| |
| [/rest/users/rod, /rest/users/roy] |