前言
因为是一个独立的项目,所以不准备使用Spring、SpringMVC、JPA、Hibernate那样重型的框架,想要一个轻便好用的restful webservice。所以使用的框架选择了jersey。
jersey介绍
Jersey是由Sun开发的产品级质量的JSR 311: JAX-RS: The Java API for RESTful Web Services的参考实现。Jersey实现了JSR-311中对标注的支持,这使得开发人员使用Java开发RESTfulWeb服务更加容易。除此以外,Jersey还增加了JSR以外的附加特性
摘自维基百科
可以看到的是,jersey是一个基于JSR 331标准的实现框架,简要说一下JSR 331 表述的就是一个RESTful Web Services的Api。需要了解更多请查看JSR文档:https://jcp.org/en/jsr/detail?id=331。
使用maven搭建jersey
执行以下mvn 命令即可在当前路径下创建一个新的jersey项目。这也是官方推荐的创建方式。
mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 \
-DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false \
-DgroupId=com.example -DartifactId=simple-service -Dpackage=com.example \
-DarchetypeVersion=2.23.1
其中-DgroupId,-DartifactId,-Dpackage 请替换成自己的项目groupId,artifactId和package名
当前版本是2.23.1。
创建好之后,请将项目引入IDE,本人使用的是Eclipse mars2。
导入成功后,如果项目没有包含src\test\java,则需要创建src\test\java目录。
创建成功后的项目即可使用tomcat运行,在浏览器输入http://localhost:8080/项目名/webapi/myresource
即可看到jersey运行的结果。
使用Servlet3 容器,配置jersery
使用maven 骨架创建的项目是基于Servlet2.x版本的,当前的如tomcat,jetty等web容器都支持servlet3的标准,那么在配置上会略有不同。
maven pom 文件
<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.xxxxxx</groupId>
<artifactId>xxxxxxx</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>xxxxxx.api</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sqlserver.version>4.0</sqlserver.version>
<slf4j.version>1.6.4</slf4j.version>
<junit.version>4.11</junit.version>
<guava.version>19.0</guava.version>
<jersey.version>2.23.1</jersey.version>
</properties>
<build>
<finalName>iguyuan.api</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<inherited>true</inherited>
<configuration>
<source>1.7</source>
<target>1.7