原文: https://howtodoinjava.com/resteasy/resteasy-tomcat-hello-world-application/

RESTEasy 是 JBOSS 提供的 JAX-RS 规范的实现,用于构建 REST API 和 RESTful Java 应用。 尽管 RESTEasy 不限于仅在 JBOSS 中使用,我们也可以与其他服务器协作。 在此 RESTEasy 示例中,学习使用 eclipse 和 tomcat 在 Java 中创建静态的 Web 服务

1. 开发环境

  1. RESTEasy 2.3.1.GA
  2. Tomcat 7
  3. JDK 1.6

请按照以下步骤构建演示应用。

2. 创建 Maven Eclipse Web 项目

运行这些命令来创建一个 Maven 项目,并且可以转换为 Eclipse 项目。

  1. $ mvn archetype:generate -DgroupId=com.howtodoinjava -DartifactId=RESTfulDemoApplication
  2. -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
  3. $ mvn eclipse:eclipse -Dwtpversion=2.0

3. RESTEasy Maven 依赖项

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.howtodoinjava</groupId>
  5. <artifactId>RESTfulDemoApplication</artifactId>
  6. <packaging>war</packaging>
  7. <version>1.0-SNAPSHOT</version>
  8. <name>RESTfulDemoApplication Maven Webapp</name>
  9. <url>http://maven.apache.org</url>
  10. <repositories>
  11. <repository>
  12. <id>jboss</id>
  13. <url>http://repository.jboss.org/maven2</url>
  14. </repository>
  15. </repositories>
  16. <dependencies>
  17. <dependency>
  18. <groupId>junit</groupId>
  19. <artifactId>junit</artifactId>
  20. <version>3.8.1</version>
  21. <scope>test</scope>
  22. </dependency>
  23. <!-- core library -->
  24. <dependency>
  25. <groupId>org.jboss.resteasy</groupId>
  26. <artifactId>resteasy-jaxrs</artifactId>
  27. <version>2.3.1.GA</version>
  28. </dependency>
  29. <dependency>
  30. <groupId>net.sf.scannotation</groupId>
  31. <artifactId>scannotation</artifactId>
  32. <version>1.0.2</version>
  33. </dependency>
  34. </dependencies>
  35. <build>
  36. <finalName>RESTfulDemoApplication</finalName>
  37. </build>
  38. </project>

4. 注册HttpServletDispatcher

RESTeasy 实现为 Servlet,并部署在 WAR 文件中。 HttpServletDispatcher类负责初始化 RESTeasy 的一些基本组件。

resteasy.scan属性会自动扫描WEB-INF/lib jar 和WEB-INF/classes目录中的@Provider和 JAX-RS 资源类(@Path@GET@POST等)并进行注册。

  1. <!DOCTYPE web-app PUBLIC
  2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  3. "http://java.sun.com/dtd/web-app_2_3.dtd" >
  4. <web-app>
  5. <display-name>Archetype Created Web Application</display-name>
  6. <!-- Auto scan REST service -->
  7. <context-param>
  8. <param-name>resteasy.scan</param-name>
  9. <param-value>true</param-value>
  10. </context-param>
  11. <servlet>
  12. <servlet-name>resteasy-servlet</servlet-name>
  13. <servlet-class>
  14. org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
  15. </servlet-class>
  16. </servlet>
  17. <servlet-mapping>
  18. <servlet-name>resteasy-servlet</servlet-name>
  19. <url-pattern>/*</url-pattern>
  20. </servlet-mapping>
  21. </web-app>

5. 创建 REST 控制器

  1. package com.howtodoinjava.restful;
  2. import javax.ws.rs.GET;
  3. import javax.ws.rs.Path;
  4. import javax.ws.rs.core.Response;
  5. @Path("/user-management")
  6. public class UserManagementModule
  7. {
  8. @GET
  9. @Path("/users")
  10. public Response getAllUsers()
  11. {
  12. String result = "<h1>RESTful Demo Application</h1>In real world application, a collection of users will be returned !!";
  13. return Response.status(200).entity(result).build();
  14. }
  15. }

6. RESTEasy 示例应用演示

当我们在 tomcat 中部署以上构建的应用并单击 URL:“http://localhost:8080/RESTfulDemoApplication/user-management/users”时,以下是响应。

面向初学者的 RESTEasy 示例教程 - 图1

JAX-RS + Tomcat 示例

要下载以上示例的源代码,请单击下面的链接。

下载源码

学习愉快!