运用Jersey搭建简单的web应用

运用Jersey可以很好的开发符合RestFul风格的web应用。

1. 运用Eclipse构建web项目

1. 新建maven项目,选择基于jersey的webapp的archetype,如果没有可以选择“add archetype”:

运用Jersey搭建简单的web应用_第1张图片

运用Jersey搭建简单的web应用_第2张图片

这里面的信息可以从jersey官网提供的maven archetype中得到:jersey快速入门

(之所以选择官网的archetype的原因是官网已经将相关的jar依赖以及web.xml中的servlet配置给出了,省去了很多事情,当然聪明的你应该会自己去配置)

完成后,项目会出现一些编译出错:

主要是jdk的设置(官方默认给的是1.7)以及tomcat依赖,我们来解决一下:

首先在buildPath中添加tomcat依赖:BuildPath -> Add Library -> Server Runtime

运用Jersey搭建简单的web应用_第3张图片

在解决jbk的版本问题,打开pom.xml,将



    4.0.0

    com.wbh
    JerseyWeb
    war
    0.0.1-SNAPSHOT
    JerseyWeb

    
        JerseyWeb
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                2.5.1
                true
                
                    1.8 
                    1.8
                
            
        
    

    
        
            
                org.glassfish.jersey
                jersey-bom
                ${jersey.version}
                pom
                import
            
        
    

    
    
        
            org.glassfish.jersey.containers
            jersey-container-servlet-core
            
            
        
        
            org.glassfish.jersey.inject
            jersey-hk2
        
        
    
    
        2.27
        UTF-8
    

然后再新maven项目:Maven -> Update Project,现在没有出现编译错误了。

我们在开看一下web.xml中jersey给了什么默认配置:





    
    
        Jersey Web Application
        org.glassfish.jersey.servlet.ServletContainer 
        
            jersey.config.server.provider.packages
            com.wbh.JerseyWeb
        
        1
    
    
        Jersey Web Application
        /webapi/* 
    

其中当tomcat启动时或实例化jersey中的servletContainer(也是一个servlet),并加载我们自定义的restful风格的包下的api。

至此,我们就完成了webapp项目的构建

2. 简单示例

接下来我们来看一下简单示例,同时将其部署到tomcat中,官方给了一个默认的api类:

package com.wbh.JerseyWeb;

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

/**
 * Root resource (exposed at "myresource" path)
 */
@Path("myresource")
public class MyResource {

    /**
     * Method handling HTTP GET requests. The returned object will be sent
     * to the client as "text/plain" media type.
     *
     * @return String that will be returned as a text/plain response.
     */
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getIt() {
        return "Got it!";
    }
}

其中@Path("myresource")标识访问该API的资源路径,如:http://localhost:8080/JerseyWeb/webapi/myresource

接下来我们来生成war包:

运用Jersey搭建简单的web应用_第4张图片

运用Jersey搭建简单的web应用_第5张图片

说明生成war包成功。

(说明:一开始我遇到javassist-3.22.0-CR2.jar的一个invalid LOC header (bad signature)异常,原因可能是本地仓库的这个jar包版本不对,解决办法是将该jar包从本地删除,然后用maven再下载一遍)

将war包复制到tomcat的webapp目录下,运行tomcat,访问:http://localhost:8080/JerseyWeb/webapi/myresource

运用Jersey搭建简单的web应用_第6张图片

 

 

你可能感兴趣的:(环境搭建)