This example demonstrates how to use JPA in the backend. The example is based on bookmark example from the RESTful Web Services book, which was inspired by the http://del.icio.us/ web service.
A bookmark web application is presented that is capable of maintaining users and their bookmarks.
The mapping of the URI path space is presented in the following table:
URI path | Resource class | HTTP methods | Notes |
---|---|---|---|
/users | UsersResource | GET | Returns a list of users. |
/users/{userid} | UserResource | GET, PUT (used also for creating new users), DELETE | Returns user details |
/users/{userid}/bookmarks | BookmarksResource | GET, POST | Returns a list of bookmarks for actual user resource. |
/users/{userid}/bookmarks/{bmid} | BookmarkResource | GET, PUT, DELETE | Returns bookmark uri and a long and short description. |
Bookmark example runs on Glassfish 3.1 application server (https://javaee.github.io/glassfish/) and needs a running JavaDB (http://www.oracle.com/technetwork/java/javadb/overview/index.html) instance for underlying data (it comes along with GlassFish 3.1).
Presuming, you have installed Glassfish 3.1. AS_HOME
variable should point to your glassfish installation directory.
You then build and run the example by
mvn package $AS_HOME/bin/asadmin start-domain $AS_HOME/bin/asadmin start-database $AS_HOME/bin/asadmin deploy target/bookmark-em.war
mvn test -Djersey.config.test.container.factory=org.glassfish.jersey.test.external.ExternalTestContainerFactory -Djersey.config.test.logging.enable=true -Djersey.config.test.logging.dumpEntity=true -Djersey.config.test.container.port=8080 -Ptest