In this tutorial we are going to see how to get HTTP request header using JAX-RS RESTful web service @Context
1. Create new Dynamic web project by choosing File –> New –> Dynamic Web Project .
2. Create the Project called RESTful-WebService
3. Add the following jar into WEF-INF/lib folder

4. Create package called com.javatutorialscorner.jaxrs.httpheader under RESTful-WebService
5. Create Java class HTTPHeaderService2 under com.javatutorialscorner.jaxrs.httpheader package
HTTPHeaderService2.java
01.
package
com.javatutorialscorner.jaxrs.httpheader;
02.
03.
import
javax.ws.rs.GET;
04.
import
javax.ws.rs.Path;
05.
import
javax.ws.rs.core.Context;
06.
import
javax.ws.rs.core.HttpHeaders;
07.
import
javax.ws.rs.core.Response;
08.
09.
@Path
(
"/tutorial"
)
10.
public
class
HTTPHeaderService2 {
11.
12.
@GET
13.
@Path
(
"/java-tutorial-corner"
)
14.
public
Response getTutorial(
@Context
HttpHeaders httpHeaders) {
15.
String userAgent = httpHeaders.getRequestHeader(
"user-agent"
).get(
0
);
16.
return
Response
17.
.status(
200
)
18.
.entity(
"User Agent Details : "
+ userAgent).build();
19.
}
20.
}
6.Configure Jersey Servlet Dispatcher
you need to configure REST as servlet in web.xml.
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>JAX-RS-Path</display-name>
<servlet>
<servlet-name>jersey-serlvet</servlet-name>
<servlet-class>
com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.javatutorialscorner.jaxrs.httpheader</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
The servlet class available in jersey com.sun.jersey.spi.container.servlet.ServletContainer. The init param com.sun.jersey.config.property.package is used to define in which package jersey will look for the service classes.This package points to your resource class package. URL pattern is the part of base URL
Now you can run the service and access the service by calling the following URL
Output
http://localhost:8080/RESTful-WebService/rest/tutorial/java-tutorial-corner/

Note : in this tutorials I used user-agent alone. You can access all http headers using @Context
0 comments:
Post a Comment