1.整合
jersey所需要的开发包下载:
https://jersey.java.net/,
解压jaxrs-ri-2.22.1文件,得到以下目录
将解压文件夹lib目录的jar文件复制到项目的WEB-INF/lib目录中,ext目录中的jar包根据自己所需 或者console报错 引入
这是我的项目的lib目录
2.配置
配置web.xml
<!-- REST配置 -->
<servlet>
<servlet-name>jerseyServlet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.znie.mypro.service.RestApp</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jerseyServlet</servlet-name>
<url-pattern>/service/*</url-pattern>
</servlet-mapping>
<!-- REST配置 结束 -->
com.znie.mypro.service.RestApp文件 指定服务类所在的包
package com.znie.mypro.service;
import javax.ws.rs.ApplicationPath;
import org.glassfish.jersey.server.ResourceConfig;
@ApplicationPath("/")
public class RestApp extends ResourceConfig{
public RestApp(){
// 服务类所在的包路径
packages("com.znie.mypro.service");
}
}
3.编写测试
编写hello测试
package com.znie.mypro.service;
import java.util.HashMap;
import java.util.Map;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import com.alibaba.fastjson.JSON;
@Path("/hello")
public class HelloService {
@GET
@Path("/index")
@Produces(MediaType.APPLICATION_JSON)
public String hello() {
Map m = new HashMap();
m.put("hello","world");
m.put("hello2","world");
return JSON.toJSONString(m);
}
@GET
@Path("/post")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public String post(@QueryParam("test")String test) {
Map<String,String> m = new HashMap<String,String>();
m.put("test",test);
m.put("hello2","world");
return JSON.toJSONString(m);
}
}
main测试
package com.znie.mypro.service;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;
public class HelloClient {
public static void main(String[] args) {
try {
Client client = ClientBuilder.newClient();
WebTarget target = client
.target("http://localhost:8081/mypro/service/hello")
.path("/post").queryParam("test", "111");
Response res = target.request().accept("application/json").get();
if (res.getStatus() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ res.getStatus());
}
String output = res.readEntity(String.class);
System.out.println(res.getStatus() + "\n……Output from Server……");
System.out.println(output);
} catch (Exception e) {
e.printStackTrace();
}
}
}