# Jersey2 HelloWorld 示例 – Jersey2 教程

> 原文： [https://howtodoinjava.com/jersey/jersey2-hello-world-example/](https://howtodoinjava.com/jersey/jersey2-hello-world-example/)

我已经发布了许多教程，以使用 RESTEasy 开发 [REST api](//howtodoinjava.com/restful-web-service/)。 在本 **Jersey2 教程**中，我将详细介绍配置步骤，以设置 [Jersey2 示例](https://jersey.java.net/) Web 应用项目。

```java
Table of Contents

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

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

开发了 Jersey 1.x 的 Jersey 团队[加入了新组织 GlassFish](https://stackoverflow.com/questions/17089250/difference-com-sun-jersey-and-org-glassfish-jersey) ，并且所有新的升级版本均从 2.x 开始发布。 它改变了框架功能的许多方面。 您可以在[官方迁移指南](https://jersey.java.net/documentation/latest/migration.html#mig-1.x)中查看更改列表。

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

## 2\. Jersey2 Maven 依赖项

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

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

```java
<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/xsd/maven-4.0.0.xsd;
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.howtodoinjava.jersey</groupId>
	<artifactId>JerseyDemos</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<repositories>
		<repository>
			<id>maven2-repository.java.net</id>
			<name>Java.net Repository for Maven</name>
			<url>http://download.java.net/maven/2/</url>
			<layout>default</layout>
		</repository>
	</repositories>
	<properties>
		<jersey2.version>2.19</jersey2.version>
		<jaxrs.version>2.0.1</jaxrs.version>
	</properties>
	<dependencies>
		<!-- JAX-RS -->
		<dependency>
			<groupId>javax.ws.rs</groupId>
			<artifactId>javax.ws.rs-api</artifactId>
			<version>${jaxrs.version}</version>
		</dependency>
		<!-- Jersey2.19 -->
		<dependency>
			<groupId>org.glassfish.jersey.containers</groupId>
			<artifactId>jersey-container-servlet</artifactId>
			<version>${jersey2.version}</version>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.core</groupId>
			<artifactId>jersey-server</artifactId>
			<version>${jersey2.version}</version>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.core</groupId>
			<artifactId>jersey-client</artifactId>
			<version>${jersey2.version}</version>
		</dependency>
	</dependencies>
	<build>
		<finalName>JerseyDemos</finalName>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

```

## 3\. Jersey2 示例 – `web.xml`更改

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

```java
<!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>

  <servlet>
        <servlet-name>jersey-serlvet</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
             <param-name>jersey.config.server.provider.packages</param-name>
             <param-value>com.howtodoinjava.jersey</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>

```

## 4\. Jersey2 示例 – REST API 代码

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

```java
package com.howtodoinjava.jersey;

import javax.ws.rs.GET;
import javax.ws.rs.Path;

@Path("/message")
public class JerseyService
{
    @GET
    public String getMsg()
    {
         return "Hello World !! - Jersey2";
    }
}

```

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

![jersey-2 HelloWorld](img/61e948f4dfd1e01a479660ec2aa729ae.png)

jersey-2 HelloWorld



If you find [java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer exception](//howtodoinjava.com/jersey/solved-java-lang-classnotfoundexception-org-glassfish-jersey-servlet-servletcontainer/) in application start up, then find the solution in linked post.[源码下载](//howtodoinjava.com/wp-content/uploads/2015/08/JerseyDemos.zip)

学习愉快！

参考：[Jersey  2 用户指南](https://jersey.java.net/documentation/latest/user-guide.html)