Java Reference
In-Depth Information
schema and your database schema. The best way to avoid this problem is to create two separ-
ate class hierarchies. That way, your XML and database mappings can evolve separately
from one another. Yes, it's a little more code for you to write, but it will save you headaches
in the long run.
I'm going to skip a lot of the details of this example. You've already seen how JAXB classes
work and this topic isn't an exercise on learning JPA, so I'll focus on how JAX-RS interacts
with EJB. Let's take a look at one of the EJBs:
@Path ( "/customers" )
public interface
interface CustomerResource
@Consumes ( "application/xml" )
Response createCustomer ( Customer customer ,
@Context UriInfo uriInfo );
@Produces ( "application/xml" )
Customers getCustomers ( @QueryParam ( "start" ) int
int start ,
@QueryParam ( "size" ) @DefaultValue ( "2" ) int
int size ,
@QueryParam ( "firstName" ) String firstName ,
@QueryParam ( "lastName" ) String lastName ,
@Context UriInfo uriInfo );
@Path ( "{id}" )
@Produces ( "application/xml)
Customer getCustomer(@PathParam(" id " ) int
int id );
For a non-JAX-RS-aware EJB container to work with JAX-RS, you need to define your
JAX-RS annotations on the EJB's business interface. The CustomerResource interface does
just this.
Our EJB business logic is defined within the CustomerResourceBean class:
public class
class CustomerResourceBean
CustomerResourceBean implements
implements CustomerResource
Search WWH ::

Custom Search