Java Jersey 配置

此示例说明如何配置 Jersey,以便你可以开始将其用作 RESTful API 的 JAX-RS 实现框架。

假设你已经安装了 Apache Maven ,请按照以下步骤设置 Jersey:

  1. 创建 maven web 项目结构,在终端(windows)中执行以下命令

mvn archetype:generate -DgroupId = com.stackoverflow.rest -DartifactId = jersey-ws-demo -DarchetypeArtifactId = maven-archetype-webapp -DinteractiveMode = false

注意: 要支持 Eclipse,请使用 Maven 命令: mvn eclipse:eclipse -Dwtpversion = 2.0

  1. 转到创建 maven 项目的文件夹,在 pom.xml 中添加所需的依赖项
<dependencies>
    <!-- Jersey 2.22.2 -->
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet</artifactId>
        <version>${jersey.version}</version>
    </dependency>
    <!-- JSON/POJO support -->
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-jackson</artifactId>
        <version>${jersey.version}</version>
    </dependency>
</dependencies>

<properties>
    <jersey.version>2.22.2</jersey.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
  1. 在 Web.xml 中,添加以下代码
<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>
        <!-- Service or resources to be placed in the following package --> 
        <param-value>com.stackoverflow.service</param-value>
    </init-param>
   
    <!-- Application configuration, used for registering resources like filters  -->
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.stackoverflow.config.ApplicationConfig</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
 </servlet>

 <!-- Url mapping, usage-http://domainname:port/appname/api/ -->
 <servlet-mapping>
     <servlet-name>jersey-serlvet</servlet-name>
     <url-pattern>/api/*</url-pattern>
 </servlet-mapping>
  1. ApplicationConfig
public class ApplicationConfig extends ResourceConfig {
    public ApplicationConfig() {
        register(OtherStuffIfNeeded.class);
    }
}

还应该注意的是,如果你想不使用 web.xml,你可以简单地删除它,并在 ApplicationConfig 类之上添加 @ApplicationPath("/api")

@ApplicationPath("/api")
public class ApplicationConfig extends ResourceConfig {
    public ApplicationConfig() {
        // this call has the same effect as
        // jersey.config.server.provider.packages
        // in the web.xml: it scans that packages for resources and providers. 
        packages("com.stackoverflow.service");
    }
}
  1. 构建和部署你的 maven 项目。
  2. 你现在可以设置 Java RESTful Web 服务(JAX-RS)类来使用 Jersey 的 jar。