基于 CXF 的 restful 风格的webservice 实现

来源:互联网 发布:hadoop2.6.0源码下载 编辑:程序博客网 时间:2024/05/16 06:52

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

0 0
原创粉丝点击