In this tutorial we are going to see how to send list to RESTful web service via URL using @QueryParam
1. Create new Dynamic web project by choosing File –> New –> Dynamic Web Project as given below.
2. Create the Project called RESTful-WebService
3. Add the following jar into WEF-INF/lib folder
4. Create package called com.javatutorialscorner.jaxrs.queryparam under RESTful-WebService
5. Create Java class QueryParamService under com.javatutorialscorner.jaxrs.queryparam package
QueryParamService .java
In above class @QueryParam used to get the value of URL query parameter into Java Class.
6.Configure Jersey Servlet Dispatcher
you need to configure REST as servlet in web.xml.
web.xml
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
http://localhost:8080/RESTful-WebService/rest/tutorials/java-tutorial?site=www.javatutorialscorner.com&tutorial=JAXWS&tutorial=Javarank=1
you can call the service by using web browser or from client class.
Web browser call
Create Client
Create package called com.javatutorialscorner.jaxrs.client under RESTful-WebService project
Create Client Java Class RESTfulClient under com.javatutorialscorner.jaxrs.client package
RESTfulClient .java
Now you can run the client and see the following output in console
output for query param
Web Site : www.javatutorialscorner.com Tutorial : [RESTful WebService, Java] Rank : 1
1. Create new Dynamic web project by choosing File –> New –> Dynamic Web Project as given below.
2. Create the Project called RESTful-WebService
3. Add the following jar into WEF-INF/lib folder
4. Create package called com.javatutorialscorner.jaxrs.queryparam under RESTful-WebService
5. Create Java class QueryParamService under com.javatutorialscorner.jaxrs.queryparam package
QueryParamService .java
package com.javatutorialscorner.jaxrs.queryparam;
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Response;
@Path("/tutorials")
public class QueryParamService {
@GET
@Path("/java-tutorial")
public Response getTutorial(@QueryParam("site") String site,
@QueryParam("tutorial") List<String> tutorial,
@QueryParam("rank") int rank) {
return Response
.status(200)
.entity("Web Site : " + site + " Tutorial : " + tutorial.toString()
+ " Rank : " + rank).build();
}
}
In above class @QueryParam used to get the value of URL query parameter into Java Class.
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.queryparam</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
http://localhost:8080/RESTful-WebService/rest/tutorials/java-tutorial?site=www.javatutorialscorner.com&tutorial=JAXWS&tutorial=Javarank=1
you can call the service by using web browser or from client class.
Web browser call
Create Client
Create package called com.javatutorialscorner.jaxrs.client under RESTful-WebService project
Create Client Java Class RESTfulClient under com.javatutorialscorner.jaxrs.client package
RESTfulClient .java
package com.javatutorialscorner.jaxrs.client;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
public class RESTfulClient {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String baseURI = "http://localhost:8080/RESTful-WebService";
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource(baseURI);
System.out.println("output for query param");
System.out.println(service.path("rest").path("tutorials/java-tutorial")
.queryParam("site", "www.javatutorialscorner.com")
.queryParam("tutorial", "RESTful WebService")
.queryParam("tutorial", "Java")
.queryParam("rank", "1").get(ClientResponse.class)
.getEntity(String.class));
}
}
Now you can run the client and see the following output in console
output for query param
Web Site : www.javatutorialscorner.com Tutorial : [RESTful WebService, Java] Rank : 1
0 comments:
Post a Comment