In a previous post, RESTful services with jQuery and Java using JAX-RS and Jersey, I demonstrated how to build a RESTful API using JAX-RS and Jersey, and how to build a jQuery application that leverages that API. The application used as an example was a Wine Cellar management application.
In follow-up posts, “Backbone.js Wine Cellar Tutorial” (part1, part 2, part 3), I showed how to add structure to the client-side of the Wine Cellar application using Backbone.js. But that three-part tutorial was provided with a PHP back-end.
By popular demand, here is a version of the Backbone.js Wine Cellar application powered by a Java / JAX-RS back-end using Jersey. The server-side of the application provides an example of building a complete RESTful API in Java using the different HTTP methods:
- GET to retrieve and search wines
- POST to add a wine
- PUT to update a wine
- DELETE to delete a wine
As already mentioned, the client-side of the application provides an example of adding structure to your JavaScript code using the Backbone.js Model, View and Router components. To learn more about the Backbone.js implementation, refer to the three part tutorial mentioned above: it is entirely back-end agnostic.
The source code for this application is hosted on GitHub here. It consists of the Eclipse Dynamic Web Project with the source code for both the Java back-end and JavaScript/Backbone.js client.
You can run the application (Part 3) here. The create/update/delete features are disabled in this online version.


Hi Christophe, I’m an ardent follower of your tutorial apps. Have you considered knockout.js as an alternative to the Backbone.js + Mustache.js combination? The data binding in knockout.js seems very natural to me being a Flex developer. It would be great to see the Wine app refactored to use Knockout.js for comparison.