resteasy的简单使用

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!

本文只仅供参考!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值