本文具体代码实现参考自:http://blog.csdn.net/kkkloveyou/article/details/21391033,如有问题,请联系我。
本文仅仅是对原文做了一点补充,感谢原作者的精彩文章,对我帮助很大。
一,环境
IDE:myeclipse10
tomcat版本,jdk版本会在下一篇文章做详细说明。
二,项目的构建
在https://jersey.java.net/download.html中,可以发现两条很实用的mvn指令:
命令一:构建基于 Servlet container 的工程:
mvn archetype:generate -DarchetypeGroupId=org.glassfish.jersey.archetypes -DarchetypeArtifactId=jersey-quickstart-webapp -DarchetypeVersion=2.23.1
DarchetypeVersion=2.23.1表示使用的jersey的版本为2.23.1
使用该指令时,因为网速等关系可能会比较慢,请耐心等待,同时需要按照提示,填入必要信息。
使用该指令创建的项目中的pom.xml已经自己添加了对jersey的依赖,不需要手动添加。
将成功创建的工程导入到myeclipse10中,这里创建的工程位于F盘下,使用Maven4MyEclipse更新工程结构,更新依赖,就可以使用了。工程结构如下:
MyResource.java文件是maven自行创建的,内容如下:
1 package com.wudi.test; 2 3 import javax.ws.rs.GET; 4 import javax.ws.rs.Path; 5 import javax.ws.rs.Produces; 6 import javax.ws.rs.core.MediaType; 7 8 /** 9 * Root resource (exposed at "myresource" path) 10 */ 11 @Path("myresource") 12 public class MyResource { 13 14 /** 15 * Method handling HTTP GET requests. The returned object will be sent 16 * to the client as "text/plain" media type. 17 * 18 * @return String that will be returned as a text/plain response. 19 */ 20 @GET 21 @Produces(MediaType.TEXT_PLAIN) 22 public String getIt() { 23 return "Got it!"; 24 } 25 }
命令二:构建基于 Grizzly 2 HTTP server container 的工程:
mvn archetype:generate -DarchetypeGroupId=org.glassfish.jersey.archetypes -DarchetypeArtifactId=jersey-quickstart-grizzly2 -DarchetypeVersion=2.23.1
此命令构建的工程,没有接触过,不做说明。
三,具体的代码实现
对自动生成工程的web.xml做一点修改,如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="3.0" 3 xmlns="http://java.sun.com/xml/ns/javaee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 6 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 7 <display-name></display-name> 8 <welcome-file-list> 9 <welcome-file>index.jsp</welcome-file> 10 </welcome-file-list> 11 <servlet> 12 <servlet-name>Jersey Web Application</servlet-name> 13 <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 14 <init-param> 15 <param-name>jersey.config.server.provider.packages</param-name> 16 <param-value>com.wudi.test</param-value> 17 </init-param> 18 <load-on-startup>1</load-on-startup> 19 </servlet> 20 <servlet-mapping> 21 <servlet-name>Jersey Web Application</servlet-name> 22 <url-pattern>/webapi/*</url-pattern> 23 </servlet-mapping> 24 </web-app>
部署到tomcat,启动服务器,url:http://localhost:8080/jerseyDemo/webapi/myresource
下面再自己编写两个Demo,代码如下:
1 package com.wudi.test; 2 3 import javax.ws.rs.GET; 4 import javax.ws.rs.Path; 5 import javax.ws.rs.Produces; 6 import javax.ws.rs.PathParam; 7 import javax.ws.rs.core.MediaType; 8 9 10 @Path("/hello") 11 public class HelloResource { 12 @GET 13 @Produces(MediaType.TEXT_PLAIN) 14 public String sayHello() { 15 return "Hello World!" ; 16 } 17 18 19 @GET 20 @Path("/{param}") 21 @Produces("text/plain;charset=UTF-8") 22 public String sayHelloToUTF8(@PathParam("param") String username) { 23 return "Hello " + username; 24 } 25 26 }
http://localhost:8080/jerseyDemo/webapi/hello
http://localhost:8080/jerseyDemo/webapi/hello/Way你好吗