基于 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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值