原文: https://howtodoinjava.com/jersey/jersey2-hello-world-example/

我已经发布了许多教程,以使用 RESTEasy 开发 REST api。 在本 Jersey2 教程中,我将详细介绍配置步骤,以设置 Jersey2 示例 Web 应用项目。

  1. Table of Contents
  2. 1\. What changed from Jersey 1.x to Jersey2.x
  3. 2\. Jersey2 maven dependencies
  4. 3\. web.xml Changes
  5. 4\. Jersey rest api code

1. 从 Jersey 1.x 到 Jersey2.x 改变了什么

开发了 Jersey 1.x 的 Jersey 团队加入了新组织 GlassFish ,并且所有新的升级版本均从 2.x 开始发布。 它改变了框架功能的许多方面。 您可以在官方迁移指南中查看更改列表。

尽管他们在指南中涵盖了许多更改,但是您可能会面临许多其他更改,并且可能会很难解决这些问题。 记住。

2. Jersey2 Maven 依赖项

首先更改,您需要在 jersey 1.x 应用中创建 pom.xml。 依赖项发生了变化。 在 Jersey2.x 项目中使用以下依赖项。 我正在使用 Jersey2.19(最新日期)。

我的pom.xml文件如下所示。

  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/xsd/maven-4.0.0.xsd;
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.howtodoinjava.jersey</groupId>
  5. <artifactId>JerseyDemos</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. <packaging>war</packaging>
  8. <repositories>
  9. <repository>
  10. <id>maven2-repository.java.net</id>
  11. <name>Java.net Repository for Maven</name>
  12. <url>http://download.java.net/maven/2/</url>
  13. <layout>default</layout>
  14. </repository>
  15. </repositories>
  16. <properties>
  17. <jersey2.version>2.19</jersey2.version>
  18. <jaxrs.version>2.0.1</jaxrs.version>
  19. </properties>
  20. <dependencies>
  21. <!-- JAX-RS -->
  22. <dependency>
  23. <groupId>javax.ws.rs</groupId>
  24. <artifactId>javax.ws.rs-api</artifactId>
  25. <version>${jaxrs.version}</version>
  26. </dependency>
  27. <!-- Jersey2.19 -->
  28. <dependency>
  29. <groupId>org.glassfish.jersey.containers</groupId>
  30. <artifactId>jersey-container-servlet</artifactId>
  31. <version>${jersey2.version}</version>
  32. </dependency>
  33. <dependency>
  34. <groupId>org.glassfish.jersey.core</groupId>
  35. <artifactId>jersey-server</artifactId>
  36. <version>${jersey2.version}</version>
  37. </dependency>
  38. <dependency>
  39. <groupId>org.glassfish.jersey.core</groupId>
  40. <artifactId>jersey-client</artifactId>
  41. <version>${jersey2.version}</version>
  42. </dependency>
  43. </dependencies>
  44. <build>
  45. <finalName>JerseyDemos</finalName>
  46. <plugins>
  47. <plugin>
  48. <artifactId>maven-compiler-plugin</artifactId>
  49. <configuration>
  50. <source>1.7</source>
  51. <target>1.7</target>
  52. </configuration>
  53. </plugin>
  54. </plugins>
  55. </build>
  56. </project>

3. Jersey2 示例 – web.xml更改

您需要在web.xml文件中进行第二次更改。 通常,更改是将旧的包名称替换为新的包名称。

  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. <servlet>
  7. <servlet-name>jersey-serlvet</servlet-name>
  8. <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
  9. <init-param>
  10. <param-name>jersey.config.server.provider.packages</param-name>
  11. <param-value>com.howtodoinjava.jersey</param-value>
  12. </init-param>
  13. <load-on-startup>1</load-on-startup>
  14. </servlet>
  15. <servlet-mapping>
  16. <servlet-name>jersey-serlvet</servlet-name>
  17. <url-pattern>/rest/*</url-pattern>
  18. </servlet-mapping>
  19. </web-app>

4. Jersey2 示例 – REST API 代码

REST 服务代码将基本相同。 如果发现任何问题,只需参考迁移指南或给我评论。

  1. package com.howtodoinjava.jersey;
  2. import javax.ws.rs.GET;
  3. import javax.ws.rs.Path;
  4. @Path("/message")
  5. public class JerseyService
  6. {
  7. @GET
  8. public String getMsg()
  9. {
  10. return "Hello World !! - Jersey2";
  11. }
  12. }

当您在 tomcat 8 服务器中的 Jersey2 应用上方运行并点击 URL“http://localhost:8080/JerseyDemos/rest/message”时,会显示以下消息。

Jersey2 HelloWorld 示例 – Jersey2 教程 - 图1

jersey-2 HelloWorld

If you find java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer exception in application start up, then find the solution in linked post.源码下载

学习愉快!

参考:Jersey 2 用户指南