gpt4 book ai didi

java - JAX-RS Web 服务在 GlassFish Server 4.0 上运行,但在 Tomcat 上不运行

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:09:18 26 4
gpt4 key购买 nike

我是网络服务的新手。所以我从一个像下面这样的小程序开始。

它在 GlassFish 服务器中运行良好,但在 Tomcat 中运行不佳(我想在 Tomcat 上运行)。这是一个简单的程序,仅给出了如何运行 Web 服务应用程序的概念。

FirstRestService.java:

package com.sandy.demo;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/resources")
public class FirstRestService extends Application {

}

员工.java:

package com.sandy.demo;

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

@Path("/employees")
public class Employees {

@GET
public String getEmployeesNames() {
return "Hello World";
}
}

我包含了 jsr311-api-1.1.1.jar(JAX-RS API JAR 文件)。

我获取了应用程序的工作 WAR 文件并部署在 GlassFish Server 中。然后我使用 URL 运行服务器:http://localhost:8080/MyFirstRestApplication/resources/employees

但我无法在 Tomcat 中执行相同的操作。

最佳答案

请注意,jsr311-api-1.1.1.jar 是指 JAX-RS 1.1 . GlassFish Server 4.0 使用 JAX-RS 2.0 .

除了正确的 JAX-RS 依赖 JAR 之外,您还需要一个 JAX-RS 实现,例如 Jersey (由 GlassFish 使用)或 RESTEasy (由 WildFly 使用)。

GlassFish 已包含您需要的所有 JAX-RS 2.0 和 Jersey 依赖项。汤姆猫没有。

由于您使用的是 GlassFish,您可能会选择 Jersey。有两种方法可以在您的 Tomcat 项目中包含 JAX-RS 和 Jersey:

1。使用 Maven

如果您使用的是 Maven,请将以下依赖项添加到您的 pom.xml:

<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<!-- if your container implements Servlet API older than 3.0,
use "jersey-container-servlet-core" -->
<artifactId>jersey-container-servlet</artifactId>
<version>2.22.1</version>
</dependency>

<!-- Required only when you are using JAX-RS Client -->
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.22.1</version>
</dependency>

只需确保根据您的 Tomcat Servlet API 版本使用正确的 artifactId:如果您的 Tomcat 实现的 Servlet API 早于 3.0,请使用 jersey-container-servlet-core .否则,使用 jersey-container-servlet .

关于 Tomcat documentation您将找到有关每个 Tomcat 版本使用的 Servlet API 版本的信息。总结:

  • Tomcat 8.0.x:Servlet API 3.1
  • Tomcat 7.0.x:Servlet API 3.0
  • Tomcat 6.0.x:Servlet API 2.5

每个artifactId的最新版本可以在Maven Repository中查看:

documentation page 上查看有关 Jersey 依赖项的更多信息.

2。手动下载 JAX-RS 和 Jersey 依赖项

如果您没有使用 Maven,请参阅 Jersey download page ,下载 Jersey JAX-RS 2.0 RI bundle 并在类路径中包含依赖项。

Jersey JAX-RS 2.0 RI 包包含 JAX-RS 2.0 API JAR、所有核心 Jersey 模块 JAR 以及所有必需的第 3 方依赖项。

关于java - JAX-RS Web 服务在 GlassFish Server 4.0 上运行,但在 Tomcat 上不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33604396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com