jersey和spring集成使用

时间:2022-12-03 19:33:33

        由于项目的需要,自己利用闲暇的时间在外部搭建了一个jersey和spring简单集成的环境,后期会随着相关业务的加入会变得更加庞大,这篇文章只是简单的介绍一下简单框架的搭建,运用的环境是maven web项目,这样便于管理。好的,废话不说,咱开始吧!

 1、环境的搭建(开发工具:eclipse,个人喜好吧,ide现期比较适应eclipse)

       对于jersey的安装有两种方式,我们将简单的介绍之。

      第一种:就是在maven项目中加上archType有关jersey web项目骨架,具体的看图

      jersey和spring集成使用

添加对jersey web项目的支持,archetypeArtifactId=jersey-quickstart-grizzly2   archetypeGroupId=org.glassfish.jersey.archetypes  archetypeVersion=2.1

其中第四个项目是选填的,我这里就不填!

如果出现下图所示的第一条条目,说明你jersey安装成功啦!

jersey和spring集成使用

安装成功后,选择这个类型的骨架去创建jersey项目,自然集成了jersey特性。

       第二种就是使用pom.xml来自动导入所需要的jar包,前提是你比较熟悉需要使用什么jar,这样才能配置全面,为了减少新手的工作量,我就将需要的包(包括spring)所需要的包一起拿进来。

      

<span style="font-size:14px;"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.demo</groupId>
<artifactId>mybook</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>mybook</name>

<build>
<finalName>mybook</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<inherited>true</inherited>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>

<dependencies>
<!-- Jersey -->
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-bean-validation</artifactId>
<version>${jersey.version}</version>
</dependency>
<!-- Jersey + Spring -->
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-spring3</artifactId>
<version>${jersey.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</exclusion>
</exclusions>
</dependency>

<!-- Spring 3 dependencies -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>

<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.3</version>
</dependency>

<!-- mysql dirver -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>

<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.3</version>
<classifier>jdk15</classifier>
</dependency>
</dependencies>
<properties>
<jersey.version>2.21</jersey.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project></span>

以后需要自此基础上开发,你们根据自己的需求去加包吧!第一种方式建立的maven项目还需要加入spring依赖包,具体的依赖包配置和第二种类似,再次不在陈述。特别要注意的是:不管第一种还是第二种方式,千万不要忘记jsrsey和spring集成的包

<span style="font-size:14px;"><!-- Jersey + Spring -->
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-spring3</artifactId>
<version>${jersey.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</exclusion>
</exclusions>
</dependency></span>

如果缺少这几个包的话,会导致项目中的spring和jersey服务无法串联,最典型的异常就是jersey接口访问正常,但是一般要使用service和dao时,均会出现空指针异常,希望大家要注意,免得大家又犯同样的错误,同时jersey和spring集成版本一定要兼容,否则会出现比如,无法找到某一个类,或者这个service无法注入等问题,切记

2、maven web restful风格项目的部署

     maven web风格项目的部署可以参考我以前写的文章,链接已经附在末尾。

3、运行起来以后,可以根据restful风格来访问测试是否成功