3.WebService实践笔记

什么是Web Service

    对这个问题,我们至少有两种答案。
    1.从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。我们把调用这个Web service 的应用程序叫做客户。例如,你想创建一个Web service ,它的作用是返回当前的天气情况。那么你可以建立一个ASP页面,它接受邮政编码作为查询字符串,然后返回一个由逗号隔开的字符串,包含了当前的气温和天气。要调用这个ASP页面,需要发送下面的这个HTTP GET

返回的数据就应该是这样:
这个ASP页面就应该可以算作是Web service 了。因为它基于HTTP GET请求,暴露出了一个可以通过Web调用的API。当然,Web service 还有更多的东西。

    2.下面是对Web service 更精确的解释: Web services是建立可互操作的分布式应用程序的新平台。作为一个Windows程序员,你可能已经用COM或DCOM建立过基于组件的分布式应用程序。COM是一个非常好的组件技术,但是我们也很容易举出COM并不能满足要求的情况。

Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。

下面介绍基于restful风格的webService简单开发步骤

webService三步曲:
1.准备服务
2.发布服务
3.请求服务
--------------------------WebService客户端------------------------------------------
org.apache.cxf.jaxrs.client.WebClient
//利用webService restful 风格的post方式增加
Customer c = new Customer();
WebClient.create("http://127.0.0.1.8080:loveCode/services/customerService/customer").
type(MediaType.APPLICATION_JSON).post(c);
//put方式修改名rose的年纪为20
WebClient.create("http://127.0.0.1.8080:loveCode/services/customerService/customer?name=rose").
type(MediaType.APPLICATION_JSON).put(null);
//get方式获得名为jack的客户信息
WebClient.create("http://127.0.0.1.8080:loveCode/services/customerService/customer?name=jack").
type(MediaType.APPLICATION_JSON).get(Customer.class);

------------------------WebService服务端---------------------------------------------------------
1. web.xml中CXF servlet服务配置

CXFService
org.apache.cxf.transport.servlet.CXFServlet
1


CXFService
/services/**/

2. applicationContext-webService.xml配置
    
        
            
        
        
            
        
        
            
        
    

3. 编写接口(及其相应实现),接口上的注解形式如下
    @Path("customer/login")
    @GET
    @Consumes({ "application/xml", "application/json" })
    @Produces({ "application/xml", "application/json" })
    public Customer login(@QueryParam("telephone") String telephone,
            @QueryParam("password") String password);
-------------------------------------------------------------
|   @Path("/customer")                                      |
|   @GET/@POST/@PUT                                         |
|   @Consumers({ "application/xml", "application/json" })   |
|   @Produces({ "application/xml", "application/json" })    |
|   @PathParam                                              |
|   @QueryParam                                             |
--------------------------------------------------------------
    Customer实体类上需要@XMLRootElement注解
    接口实现类调用DAO完成功能

你可能感兴趣的:(3.WebService实践笔记)