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();
}
}
}