Rails to Java via REST - By Brian Leonard
Brian Leonard has written "Rails to Java via REST," detailing how he used Netbeans to write a REST service for a JPA entity bean, and used it from a Rails application:
Since I've been studying the Rails framework, I've had an interest in integration with Java. Yes, JRuby is one possible solution, but if you have some large Java system that you want to integrate with, it' unlikely that you're just going to get the jar files to access that system's APIs. More likely is that system will expose itself as a service, and the service type du jour is REST.
So, in this entry I'm going to expose an entity class as a RESTful web service and then create a Rails client for that entity.
Setting Things Up
- Download and install NetBeans 6.0 M10. Grab the Full distribution so you can get the Java IDE, Ruby and GlassFish.
- Download and install the SWDP to GlassFish. This is required to create the RESTful web service.
Creating the RESTful Web Service
Here we'll expose the manufacturer table as a RESTful web service.
Create the Manufacturer Entity Class
- Start NetBeans 6.0 and create a new Web Application named Manufacturers.
- Right-click the project and select Entity Classes from Database.
- Select jdbc/sample as the Data Source and MANUFACTURER as the Table (your list of available tables will be different then mine, but you should have MANUFACTURER):
- Click Next and set the package to model.
- Click the Create Persistence Unit button and then Create on the Create Persistence Unit dialog:
- Click Finish to generate the Manufacturer entity class.
Create the REST Web Service from the Entity Class
- Right-click the project and select REST Web Services from Entity Classes
- Select the Manufacturer Entity Class and click Next.
- Set the package to rest and click Finish.
Test the REST Services
- Right-click the project and choose Test REST Services.
- This will deploy the Manufacturers application to GlassFish and launch a Test REST Services tool:
This tool is very handy for working with the RESTful interface.
The Completed Project
Creating the Rails REST Client
If you know REST then you know that its operations are basically the HTTP methods: POST, GET, UPDATE and DELETE, which correspond nicely to SQL's Create, Read, Update and Delete. I will implement each one in turn.
GET the Manufacturers
Create the Project
Create a new Ruby on Rails Application named manufacturer_client.
Create a Model to Represent the Manufacturer
The Manufacturer entity contains a bunch of fields. For the purposes of this tutorial, we're only going to work with a handful of them: name, email and phone.
- Since we're not using ActiveRecord, we're not going to run the model generator. Instead, right-click the Models folder and select New > Ruby Class.
- Name the class Manufacturer.
- Add the following code: