jersey+maven构建restful服务--入门篇

jersey+maven构建restful服务--入门篇

标签: jerseymavenRestful
2269人阅读 评论(0) 收藏 举报
分类:

一、新建一个Maven Web项目

a) 新建一个简单的Maven项目

 


 

 建好之后的项目工程结构如下:

 

b) 将简单的Maven项目转成Web项目

 

 

注意勾选生成web.xml文件

 

最终的项目结构如下:

 

 

c) 添加Maven依赖

 

 

 

二、修改pom文件,添加jersey依赖

  1. <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">  
  2.   <modelVersion>4.0.0</modelVersion>  
  3.   <groupId>com.chhliu</groupId>  
  4.   <artifactId>jersey-restful</artifactId>  
  5.   <version>0.0.1-SNAPSHOT</version>  
  6.   <packaging>war</packaging>  
  7.   <name>jersey-restful</name>  
  8.   <description>jersey构建restful服务入门</description>  
  9.     
  10.   <dependencies>  
  11.         <dependency>  
  12.             <groupId>org.glassfish.jersey.containers</groupId>  
  13.             <artifactId>jersey-container-servlet</artifactId>  
  14.             <version>2.17</version>  
  15.         </dependency>  
  16.         <dependency>  
  17.             <groupId>org.glassfish.jersey.core</groupId>  
  18.             <artifactId>jersey-client</artifactId>  
  19.             <version>2.17</version>  
  20.         </dependency>  
  21.         <dependency>  
  22.             <groupId>org.glassfish.jersey.media</groupId>  
  23.             <artifactId>jersey-media-json-jackson</artifactId>  
  24.             <version>2.17</version>  
  25.         </dependency>  
  26.     </dependencies>  
  27. </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 文件

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <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">  
  3.   <display-name>jersey-restful</display-name>  
  4.   <servlet>    
  5.       <servlet-name>jersey-restful</servlet-name>    
  6.       <servlet-class>    
  7.           org.glassfish.jersey.servlet.ServletContainer    
  8.       </servlet-class>    
  9.       <init-param>    
  10.           <param-name>jersey.config.server.provider.packages</param-name>    
  11.           <param-value>com.chhliu</param-value>    
  12.       </init-param>    
  13.       <load-on-startup>1</load-on-startup>    
  14.   </servlet>    
  15.   <servlet-mapping>    
  16.       <servlet-name>jersey-restful</servlet-name>    
  17.       <url-pattern>/rest/*</url-pattern>    
  18.   </servlet-mapping>  
  19. </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

  1. public class User implements Serializable {  
  2.     private static final long serialVersionUID = 1L;  
  3.   
  4.     private int id;  
  5.     private String name;  
  6. }  
public class User implements Serializable {
	private static final long serialVersionUID = 1L;

	private int id;
	private String name;
}

b) 构建服务

  1. @Path("/helloworld")  
  2. public class RestfulHelloWorld {  
  3.     @GET  
  4.     @Produces(MediaType.TEXT_PLAIN)  
  5.     public String sayHelloWorld() {  
  6.         return "Hello World!";  
  7.     }  
  8.   
  9.     @GET  
  10.     @Path("/{param}")  
  11.     @Produces("text/plain;charset=UTF-8")  
  12.     public String sayHello2UserByText(@PathParam("param") String username) {  
  13.         return "Hello " + username;  
  14.     }  
  15.   
  16.     @GET  
  17.     @Path("/get")  
  18.     @Produces(MediaType.APPLICATION_JSON)  
  19.     public User sayHelloToUserByJson(@QueryParam("username") String username) {  
  20.         User user = new User();  
  21.         user.setId(1);  
  22.         user.setName(username);  
  23.         return user;  
  24.     }  
  25. }  
@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) 测试服务

  1. http://localhost:8080/jersey-restful/rest/helloworld  
  2. http://localhost:8080/jersey-restful/rest/helloworld/chhliu  
  3. 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
测试结果如下:
  1. Hello World!  
  2. Hello chhliu  
  3. {"id":1,"name":"chhliu"}  
Hello World!
Hello chhliu
{"id":1,"name":"chhliu"}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值