版权声明:本文为博主原创文章,转载请注明出处。
一、新建一个Maven Web项目
a) 新建一个简单的Maven项目
建好之后的项目工程结构如下:
b) 将简单的Maven项目转成Web项目
注意勾选生成web.xml文件
最终的项目结构如下:
c) 添加Maven依赖
二、修改pom文件,添加jersey依赖
- <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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.chhliu</groupId>
- <artifactId>jersey-restful</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>war</packaging>
- <name>jersey-restful</name>
- <description>jersey构建restful服务入门</description>
- <dependencies>
- <dependency>
- <groupId>org.glassfish.jersey.containers</groupId>
- <artifactId>jersey-container-servlet</artifactId>
- <version>2.17</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jersey.core</groupId>
- <artifactId>jersey-client</artifactId>
- <version>2.17</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jersey.media</groupId>
- <artifactId>jersey-media-json-jackson</artifactId>
- <version>2.17</version>
- </dependency>
- </dependencies>
- </project>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.chhliu</groupId>
<artifactId>jersey-restful</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>jersey-restful</name>
<description>jersey构建restful服务入门</description>
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.17</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.17</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.17</version>
</dependency>
</dependencies>
</project>
三、修改
web.xml
文件
- <?xml version="1.0" encoding="UTF-8"?>
- <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_3_0.xsd" id="WebApp_ID" version="3.0">
- <display-name>jersey-restful</display-name>
- <servlet>
- <servlet-name>jersey-restful</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.chhliu</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>jersey-restful</servlet-name>
- <url-pattern>/rest/*</url-pattern>
- </servlet-mapping>
- </web-app>
<?xml version="1.0" encoding="UTF-8"?>
<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_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>jersey-restful</display-name>
<servlet>
<servlet-name>jersey-restful</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.chhliu</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-restful</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
四、构建RestFul服务
a) 新建一个VO类
- public class User implements Serializable {
- private static final long serialVersionUID = 1L;
- private int id;
- private String name;
- }
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String name;
}
b) 构建服务
- @Path("/helloworld")
- public class RestfulHelloWorld {
- @GET
- @Produces(MediaType.TEXT_PLAIN)
- public String sayHelloWorld() {
- return "Hello World!";
- }
- @GET
- @Path("/{param}")
- @Produces("text/plain;charset=UTF-8")
- public String sayHello2UserByText(@PathParam("param") String username) {
- return "Hello " + username;
- }
- @GET
- @Path("/get")
- @Produces(MediaType.APPLICATION_JSON)
- public User sayHelloToUserByJson(@QueryParam("username") String username) {
- User user = new User();
- user.setId(1);
- user.setName(username);
- return user;
- }
- }
@Path("/helloworld")
public class RestfulHelloWorld {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sayHelloWorld() {
return "Hello World!";
}
@GET
@Path("/{param}")
@Produces("text/plain;charset=UTF-8")
public String sayHello2UserByText(@PathParam("param") String username) {
return "Hello " + username;
}
@GET
@Path("/get")
@Produces(MediaType.APPLICATION_JSON)
public User sayHelloToUserByJson(@QueryParam("username") String username) {
User user = new User();
user.setId(1);
user.setName(username);
return user;
}
}
c) 发布服务
d) 测试服务
- http://localhost:8080/jersey-restful/rest/helloworld
- http://localhost:8080/jersey-restful/rest/helloworld/chhliu
- http://localhost:8080/jersey-restful/rest/helloworld/get?username=chhliu
http://localhost:8080/jersey-restful/rest/helloworld
http://localhost:8080/jersey-restful/rest/helloworld/chhliu
http://localhost:8080/jersey-restful/rest/helloworld/get?username=chhliu
测试结果如下:
- Hello World!
- Hello chhliu
- {"id":1,"name":"chhliu"}
Hello World!
Hello chhliu
{"id":1,"name":"chhliu"}