基于 CXF 的 restful 风格的webservice 实现

Posted TT_DUL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于 CXF 的 restful 风格的webservice 实现相关的知识,希望对你有一定的参考价值。

1、建立 cxf-server.xml 放在 src 根目录

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    xmlns:jaxws="http://cxf.apache.org/jaxws"  
    xmlns:jaxrs="http://cxf.apache.org/jaxrs"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
                       http://www.springframework.org/schema/beans/spring-beans.xsd  
                       http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd  
                       http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd">  


     <bean id="terminalHttpService" class="com.test.httpService.TerminalServiceRS"></bean>

       <jaxrs:server id="terminalService" address="/"> 
            <jaxrs:serviceBeans>
                <ref bean="terminalHttpService" />
            </jaxrs:serviceBeans>
    </jaxrs:server>


</beans>  

2、实现 TerminalServiceRS.java

import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.fastjson.JSON;
/**
 * 一个基于JAX-RS的服务
 * JAX-RS是无状态的服务
 */
@Path(value="/terminal/") //声明uri路径
@Produces(value=MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON)//声明支持的类型
public class TerminalServiceRS 
    private static final Logger LOG = LoggerFactory.getLogger(TerminalServiceRS.class);


    /**
     * 接收终端的实时数据并直接推送到在线的客户端
     * 接收终端的轨迹回放数据并存到内存并且推送到在线的客户端
     * 通过HttpClient调用,并设置请求参数
     */
    @POST
    @Path(value="/location/platform/")
    public String location(@PathParam("platform")String platform,String busiLocation)

            return JSON.toJSONString("success");

    


3、需要在web.xml 中加入映射

     <servlet>
        <servlet-name>CXFService</servlet-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
     </servlet>
     <servlet-mapping>
        <servlet-name>CXFService</servlet-name>
        <url-pattern>/webservice/*</url-pattern>
     </servlet-mapping>

最后就可以试验用浏览器访问你的 restful 了, localhost/应用名/webservice

以上是关于基于 CXF 的 restful 风格的webservice 实现的主要内容,如果未能解决你的问题,请参考以下文章

cxf的soap风格+spirng4+maven 服务端

MAVEN,SPRING,CXF构建REST风格WebService

[CXF REST标准实战系列] Spring4.0 整合 CXF3.0,实现测试接口(转)

CXF 发布rest服务

14_CXF发布REST服务

使用CXF实现基于Rest方式的WebService(转)