一、环境

JetBrains14.2,tomcat8,Jersey2.13,maven3.3.9,jdk1.7

二、环境配置

1、创建一个maven项目RestDemo,目录结构如下:

glassfish.jersey构建RESTful服务实例

2、修改pom.xml文件,如下:

<dependencies>
      <!-- Tomcat Servlet API -->
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
      </dependency>

      <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-grizzly2-servlet</artifactId>
        <version>2.13</version>
      </dependency>

      <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet-core</artifactId>
        <version>2.13</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-jackson</artifactId>
        <version>2.13</version>
      </dependency>
      <!-- Required only when you are using JAX-RS Client -->
      <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-client</artifactId>
        <version>2.13</version>
      </dependency>
</dependencies>

   3、在resources包下建一个HelloResource类

package com.lf.rest.resources;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

/**
 * Created by lenovo on 2018/1/6.
 */
@Path("/hello")
public class HelloResource  {
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String sayHello(){
        return " jersey hello world!";
    }
}
  4、修改web.xml,添加基于Servlet容器

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
    <display-name>TestJersey2.5</display-name>
    <!--1、通过加载resources包的形式,加载所有resources-->
       <!--
         <servlet>
           <servlet-name>jersey_rest</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.lf.rest.resources</param-value>
           </init-param>
           <load-on-startup>1</load-on-startup>
       </servlet>
       <servlet-mapping>
           <servlet-name>jersey_rest</servlet-name>
           <url-pattern>/rest/*</url-pattern>
       </servlet-mapping>-->

    <!--2、通过加载配置文件,加载指定的resources-->
    <servlet>
       <servlet-name>jersey_rest</servlet-name>
       <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
       <init-param>
           <param-name>javax.ws.rs.Application</param-name>
           <param-value>com.lf.config.JerseyResourcesConfig</param-value>
       </init-param>
       <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
       <servlet-name>jersey_rest</servlet-name>
       <url-pattern>/rest/*</url-pattern>
   </servlet-mapping>

</web-app>

    注意:方式一(注释掉的部分),通过加载resources包形式,加载所有的resources资源(是使用默认的资源加载器加载,需要给出资源所在的package),但是<param-name>的中间名称一定要是jersey.config.server.provider.packages,不要改变;

              方式二、是自己定义的资源加载器加载想要的资源,这样可控性比较强,但是<param-name>的中间名称一定要是javax.ws.rs.Application,不要改变;JerseyResourcesConfig内容如下;

package com.lf.config;

import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import com.lf.rest.resources.HelloResource;
import com.lf.rest.resources.UserResource;
import com.lf.rest.resources.UserResource1;
import org.glassfish.jersey.server.ResourceConfig;

/**
 * Created by lenovo on 2018/1/6.
 */
public class JerseyResourcesConfig extends ResourceConfig {

    public JerseyResourcesConfig(){
        register(HelloResource.class);
    }
}
   5、发布程序到tomcat中,成功后输入:http://localhost:8080/RestDemo/rest/hello,显示界面如下表示成功

               glassfish.jersey构建RESTful服务实例

        后续可以学习xml,json,jersey-client,集成到别的项目中等

           



相关文章: