转载

jersey和spring集成使用

编辑推荐:
本文来自于csdn,这篇文章只是简单的介绍一下简单框架的搭建,运用的环境是maven web项目,这样便于管理。

由于项目的需要,自己利用闲暇的时间在外部搭建了一个jersey和spring简单集成的环境,后期会随着相关业务的加入会变得更加庞大。

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风格来访问测试是否成功

原文  http://www.uml.org.cn/j2ee/201904171.asp
正文到此结束
Loading...