san*_*ndy 3 java api web-services jax-rs restful-architecture
我是Web服务的新手。因此,我从一个如下的小程序开始。
它可以在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 {
}
Run Code Online (Sandbox Code Playgroud)
员工.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";
}
}
Run Code Online (Sandbox Code Playgroud)
我已经包含了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依赖项。Tomcat没有。
由于您使用的是GlassFish,因此可能会选择Jersey。有两种方法可以在您的Tomcat项目中包括JAX-RS和Jersey:
如果您使用的是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>
Run Code Online (Sandbox Code Playgroud)
只需确保artifactId根据Tomcat Servlet API版本使用的是正确的:如果Tomcat实现的3.0版之前的Servlet API,请使用jersey-container-servlet-core。否则,请使用jersey-container-servlet。
在Tomcat文档上,您将找到有关每个Tomcat版本使用的Servlet API版本的信息。总结一下:
每个版本的最新版本都artifactId可以在Maven存储库中检查:
在文档页面上查看有关Jersey依赖项的更多信息。
如果您不使用Maven,请参考Jersey下载页面,下载Jersey JAX-RS 2.0 RI软件包,并包括对类路径的依赖。
在新泽西州JAX-RS 2.0 RI束包含JAX-RS 2.0 API JAR,所有的核心泽西模块的JAR以及所有需要的第三方的依赖关系。
| 归档时间: |
|
| 查看次数: |
1335 次 |
| 最近记录: |