RESTEasy web service tutorial basic
Step 1: Create a maven project structure with the following archetype maven command. This assumes that Java and Maven are set up as per the previous tutorials.
mvn archetype:generate -DgroupId=com.mytutorial -DartifactId=simpleRestWeb -DarchetypeArtifactId=maven-archetype-webapp
Step 2: The above command creates a basic Java web structure.
Step 3: Import this into eclipse IDE. File --> Import
Step 4: Click "Next" and browse the folder simpleRestWeb you just created via mvn archetype plugin.
Step 5: Create the "java" source folder by right mouse clicking on simpleRestWeb folder, and then "Build Path" --> "New Souse Folder". type "src/main/java" as the folder name.
Step 6: Update the pom.xml file with the RESEasy library dependencies.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mytutorial</groupId>
<artifactId>simpleRestWeb</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>simpleRestWeb Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<resteasy.version>2.3.6.Final</resteasy.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- JAX-RS -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>jaxrs-api</artifactId>
<!-- <scope>provided</scope> -->
<version>${resteasy.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<!-- <scope>provided</scope> -->
<version>${resteasy.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxb-provider</artifactId>
<!-- <scope>provided</scope> -->
<version>${resteasy.version}</version>
</dependency>
</dependencies>
<build>
<finalName>simpleRestWeb</finalName>
</build>
</project>
Step 7: Define web.xml file
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>resteasy.scan</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>resteasy.servlet.mapping.prefix</param-name> <param-value>/rest</param-value> </context-param> <listener> <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class> </listener> <servlet> <servlet-name>resteasy-simple</servlet-name> <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class> </servlet> <servlet-mapping> <servlet-name>resteasy-simple</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app>
This indicates that relative path will be something like /rest/*
Step 8: If you are deploying to a jboss container, define jboss-web.xml. Otherwise the context root will be simpleRestWeb.
<jboss-web> <context-root>tutorial</context-root> </jboss-web>
Step 9: Define a simple RESTful web service interface.
package com.mytutorial;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
@Path("/myapp")
public interface SimpleRestWeb {
@GET
@Path("/name/{name}")
public String sayHello(@PathParam("name") String name);
}
Step 10: The web service implementation
package com.mytutorial;
public class SimpleRestWebImpl implements SimpleRestWeb {
@Override
public String sayHello(String name) {
String result = "Hello " + name;
return result;
}
}
Step 11: Execute mvn clean install from a DOS prompt to build the war file.Step 12: Deploy the war file to JBoss or any other server.
Step 13: The url to test
JBoss server with jboss-web.xml
http://localhost:8080/tutorial/rest/myapp/name/arul
The output is: Hello arul
If deployed to any other application server without the jboss-web.xml
http://localhost:8080/simpleRestWeb/rest/myapp/name/arul
Labels: RESTEasy, RESTful, Web services





0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home