RESTEasy tutorial to create RESTFul web services with Maven and Eclipse
Assumes that you have set up Java and Maven.
Step 1: Generate a maven Web project.
mvn archetype:generate -DgroupId=com.mycompany -DartifactId=RESTfulWebService -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
If you set -DinteractiveMode=true, you will be prompted for some inputs.
From the folder where you ran this, you should now have the following file structure created.
Step 2: Open eclipse and import this project in with File --> Import --> Existing Maven Projects, and on the pop-up select the folder RESTfulWebService you created earlier containing the pom.xml file.
Step 3: Open the pom.xml file and add the RESTEasy 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.mycompany</groupId> <artifactId>RESTfulWebService</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>RESTfulWebService 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 dependencies --> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>jaxrs-api</artifactId> <version>${resteasy.version}</version> </dependency> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxrs</artifactId> <version>${resteasy.version}</version> </dependency> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxb-provider</artifactId> <version>${resteasy.version}</version> </dependency> </dependencies> <build> <finalName>RESTfulWebService</finalName> </build> </project>
Step 4: Run the mvn eclipse command to bring in the jar files
C:\Users\akumaras\workspace\RESTfulWebService>mvn eclipse:eclipse
Now, if you go back to eclipse and refresh the project, you will see all the dependency libraries (i.e. jars) added to your build path.
Step 5: Within eclipse create a new source folder src/main/java by right-clicking on the project RESTfulWebService and then selecting Build Path --> New Source Folder ... on the pop up context menu. The folder name is src/main/java.
Step 6: Within src/main/folder right click and create New --> Package. The package name is com.mycompany.
Step 7: Right click on com.mycompany, and New --> Class.
package com.mycompany; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.core.Response; @Path("/simple") public class SimpleService { @GET @Path("/{param}") public Response printMessage(@PathParam("param") String msg) { String result = "Hello : " + msg; return Response.status(200).entity(result).build(); } }
Step 8: Define the web.xml file. The web deployment descriptor.
<!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> <!-- Auto scan REST service --> <context-param> <param-name>resteasy.scan</param-name> <param-value>true</param-value> </context-param> <!-- this need same with resteasy servlet url-pattern --> <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-servlet</servlet-name> <servlet-class> org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher </servlet-class> </servlet> <servlet-mapping> <servlet-name>resteasy-servlet</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app>
Step 9: Package it as a war file using the maven command.
C:\Users\akumaras\workspace\RESTfulWebService>mvn package
The packaged war file RESTfulWebService.war will look like
Step 10: Deploy the RESTfulWebService.war to an application server, I deployed mine to a JBoss server.
The URL to to try on a web browser is
http://localhost:8080/RESTfulWebService/rest/simple/Arul
where RESTfulWebService is the name of the war file "rest" is configured in the web.xml file as the servlet mapping "/rest/*". "simple" is the path annotation on the SimpleService class @Path("/simple"), and finally, "Arul" is the "{param}" in @Path("/{param}")
Labels: RESTEasy, RESTful, Web services
1 Comments:
This comment has been removed by a blog administrator.
Post a Comment
Subscribe to Post Comments [Atom]
<< Home