1、maven 依赖
<properties>
<resteasy.version>3.0.6.Final</resteasy.version>
</properties>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>jaxrs-api</artifactId>
<version>${resteasy.version}</version>
</dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>${resteasy.version}</version>
<exclusions>
<exclusion>
<artifactId>javassist</artifactId>
<groupId>javassist</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxb-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-spring</artifactId>
<scope>runtime</scope>
<version>${resteasy.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<scope>runtime</scope>
<version>${resteasy.version}</version>
</dependency>
<!-- Resteasy -->
2、web.xml配置
<!-- 这句是关键 -->
<context-param>
<param-name>resteasy.resources</param-name>
<param-value>com.zsh.rest.HydrologyService</param-value>
</context-param>
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rs</param-value>
</context-param>
<!-- resteasy 配置 -->
<listener>
<listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>
<listener>
<listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>Resteasy</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/rs/*</url-pattern>
</servlet-mapping>
注:
<!-- 注释掉spring上下文监听器-->
<!-- <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> -->
@Path("/path")
public class HydrologyService {
@GET
@Path("/test/{id}")
@Produces("application/json")
public String test(@PathParam("id") String id){
return "hello"+id;
}
@GET
@Path("addAcc/parameters")
@Produces("application/json; charset=utf-8")
public Response addCus(@QueryParam("result") String result, @QueryParam("testName") String testName){
ResponseTest test = new ResponseTest();
test.setResult(result);
test.setTestName(testName);
return Response.status(201).entity(test).build();
}
}
3、请求
http://ip:port/{上下文}/rs/path/test/1
请求结果:hello1
或者通過httpclient来请求
CloseableHttpClient client = HttpClients.createDefault();
// 使用get方式
HttpGet httpGet = new HttpGet("http://10.10.64.24:8080/vtms/rs/path/test/1");
InputStream is =null;
CloseableHttpResponse response = null;
response = client.execute(httpGet);
//看请求是否成功,这儿打印的是http状态码
System.out.println(response.getStatusLine().getStatusCode());
//4.获取响应的实体内容,就是我们所要抓取得网页内容
HttpEntity entity = response.getEntity();
//5.将其打印到控制台上面
//使用EntityUtils
if (entity != null) {
System.out.println(EntityUtils.toString(entity, "utf-8"));
}
EntityUtils.consume(entity);
带参数的请求:
//http://10.10.64.24:8080/vtms/rs/path/addAcc/parameters?result=true&testName=ooo
public static void testQueryParam(String url){
CloseableHttpClient client=HttpClients.createDefault();
HttpGet request=new HttpGet(url);
InputStream inputStream = null;
CloseableHttpResponse response;
try {
response = client.execute(request);
HttpEntity entity = response.getEntity();
if (entity != null) {
inputStream = entity.getContent();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line = "";
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(inputStream!=null){
try {
System.err.println("aaaa!");
inputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
控制台输出结果
{"testName":"ooo","result":"true"}
aaaa!
本文只仅供参考!