天天看点

Java CXF RestFul风格的web service发布与调用

优点:

Ø Ø Restful 风格的 web service 是直接通过 http 协议通信。       所以,可以直接通过浏览器访问服务方法       相对于 soap 格式的 web service 更快,不愈要声称客户端代码。

一、发布:

Ø 导入依赖 jar Ø 定制 RetFul 风格的 web service Ø 将 web service 纳入工厂 Ø Web.xml 中配置CXFServlet 1、 定制 RestFul 风格的 web service

Java CXF RestFul风格的web service发布与调用

2、将web service纳入工厂

Java CXF RestFul风格的web service发布与调用
Java CXF RestFul风格的web service发布与调用

3、Web.xml中配置CXFServlet

Java CXF RestFul风格的web service发布与调用

4、在浏览器输入网址直接返回json串:

Java CXF RestFul风格的web service发布与调用

二、调用:

1、通过 apache 的HttpClient的Fluent发起http请求调用,导入jar, 则在项目中需要调用 RestFul 的 web 服务的位置可以 使用上述文件中的api,即通过以上支持,已然可以在项目的任意一个位置调用  RestFul的Web-Service 2、调用实例:先建立一个测试类,下面是各种方式的例子。

//get

@Test

public void testHTTP() throws ClientProtocolException, IOException{

System.out.println(Request.Get("http://localhost:8989/ws_cxf_spring_rest/rest/wsRest/rest9/query/xxx")

        .execute().returnContent().asString());

}

//post

@Test

public void testHTTP2() throws ClientProtocolException, IOException{

System.out.println(Request.Post("http://localhost:8989/ws_cxf_spring_rest/rest/wsRest/rest9/insert")

       .body(new StringEntity("{\"user9\":{\"id\":99,\"name\":\"zhj9\"}}"))

        .setHeader("content-type", "application/json")

        .execute());

}

//put

@Test

public void testHTTP3() throws ClientProtocolException, IOException{

System.out.println(Request.Put("http://localhost:8989/ws_cxf_spring_rest/rest/wsRest/rest9/update")

       .body(new StringEntity("{\"id\":88,\"name\":\"zhj88\"}"))

        .setHeader("content-type", "application/json")

        .execute().returnContent().asString());

}

//delete

@Test

public void testHTTP4() throws ClientProtocolException, IOException{

System.out.println(Request.Delete("http://localhost:8989/ws_cxf_spring_rest/rest/wsRest/rest9/delete/11")

        .execute().returnContent().asString());

}