Use JSON content in JAX-RS application requests and responses
JavaScript Object Notation (JSON) is a common media format that RESTful services consume and produce. Use this lightweight data-interchange format based on the object-literal notation of JavaScript to exchange data.
JSON is programming-language neutral. Multiple web browsers and JavaScript libraries such as Dojo provide support for JSON. WebSphere supports the Jackson and JavaScript Object Notation (JSON4J) libraries.
The Jackson library is a JSON processor (both parser and generator) based on streaming API for XML (StAX) pull parser technology. It provides basic JSON reading and writing (parsing and generating), a full node-based tree model, as well as object-to-JSON data binding.
Use the Jackson library to unmarshal and marshal JSON data to and from Plain Old Java Objects (POJOs) and Java Architecture for XML Binding (JAXB) objects. To use Jackson to process JSON data, we must include the Jackson libraries in the class path. After adding Jackson to the class path, we use POJOs and JAXB objects to represent request and response message bodies. Jackson is included in the server-side run time of this product.
The JSON4J library is an implementation of a set of JSON handling classes for use within Java environments. The JSON4J library provides a simple Java model for constructing and manipulating data to be rendered as JSON data.
Use the JSON4J library to output JSON data. To use JSON4J types as supported entity types, we must include the JSON4J library in the class path. After adding JSON4J to the class path, we can use the JSONObject, and the JSONArray classes from the JSON4J library as types to represent request and response message bodies. JSON4J is included in the server-side runtime environment of this product.
Develop JAX-RS applications to create RESTful services
- Add JAX-RS libraries on the class path.
- Define the resources in JAX-RS web applications.
Resources can contain static or dynamically updated data. Examples of resources from an online book store application include a book, an order from a store, and a collection of users. By identifying the resources in the application, we can make the service more useful and easier to develop.
- Configure the JAX-RS application.
Using one of the JAX-RS Version 1.1 configuration methods, we can omit a javax.ws.rs.core.Application subclass in the application or have a javax.ws.rs.core.Application subclass that returns an empty set of classes to inform the JAX-RS runtime environment to find and use all the JAX-RS classes in the application. Use this method when we do not want to manually add every relevant JAX-RS class to a javax.ws.rs.core.Application subclass.
By specifying the specific IBM JAX-RS servlet and filter, we can take advantage of and ensure specific IBM JAX-RS behavior. For example, using the IBM JAX-RS filter can be helpful in developing a web application with a mix of JAX-RS resources and JSP files with the same URL patterns.
The web.xml file is optional unless we want to to specify security constraints or roles, or other features specific to a web.xml file.
Choose one of the following three methods to configure the JAX-RS application:
- Configure JAX-RS applications using JAX-RS 1.1 methods
Use this method to use the annotation scanning capabilities or to use the JAX-RS 1.1 configuration methods. Use the annotation scanning capabilities to promote application portability, to minimize the amount of configuration code, or to dynamically modify the application without changes to the application code.
- Configure the web.xml file for JAX-RS servlets
Use this method to specify features enabled using servlet initialization parameters to change the behavior and ensure that we get the IBM JAX-RS servlet. When using servlets, we can define a servlet path in the web.xml file that is appended to the base URL.
- Configure the web.xml file for JAX-RS filters
Use this method to use the filter when we have JSPs, other servlets and filters, and JAX-RS resources with a mix of URL patterns. We can configure the web.xml file to define filters that indicate the possible URLs on which the filter can be invoked.
- Implement a resource method using JSON content for a request and response entity.
- RESTful services can consume and produce content using the JSON format.
- Assemble JAX-RS web applications.
- After developing the Java class files for our JAX-RS web application and edit the web.xml file to enable the JAX-RS servlet, we are ready to assemble the application. Assemble the web application into a web application archive (WAR) package. We can assemble the WAR package into an EAR package, if required.
- Deploy JAX-RS web applications.
- After assembling the JAX-RS web application, deploy the web archive (WAR) package or the EAR package onto the application server.
We have developed and deployed a JAX-RS web application on the application server that uses JSON4J libraries to process JSON content for requests and responses.
Implement a resource method using IBM JSON4J Web services specifications and APIs