通过CXF,开发rest协议接口(简单明了)

1. 引入cxf的jar包
  pom文件里面直接增加依赖
      < dependency>
          <groupId > junit</ groupId>
          <artifactId > junit</ artifactId>
          <version >4.11 </version >
          <scope >test </scope >
      </dependency >
      <dependency >
          <groupId >org.springframework </groupId >
          <artifactId >spring- webmvc</ artifactId>
          <version >4.0.0.RELEASE </version >
      </dependency >
      <dependency >
           <groupId >org.apache.cxf </groupId >
           <artifactId > apache-cxf </artifactId >
           <version >2.4.3</version >
           <type > pom</ type>
      </dependency >

2. 配置web.xml文件
   <? xml version= "1.0" encoding= "UTF-8" ?>
   < web-app xmlns= "http://xmlns.jcp.org/xml/ns/javaee"

    xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation= "http://xmlns.jcp.org/xml/ns/javaee
     http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version= "3.1" >

  < display-name >Archetype Created Web Application </display-name >
  < context-param >
            <param-name >contextConfigLocation </param-name >
           <param-value >classpath:config/spring/metadataWebService-spring.xml </param-value >
      </context-param >
      <listener >
           <listener-class >org.springframework.web.context.ContextLoaderListener </listener-class >
      </listener >
      <servlet >
            <servlet-name >CXFServlet </servlet-name >
           <servlet-class >org.apache.cxf.transport.servlet.CXFServlet </servlet-class >
      </servlet >
      <servlet-mapping >
            <servlet-name >CXFServlet </servlet-name >
            <url-pattern >/services/* </url-pattern >
      </servlet-mapping >
      <filter >
        <filter-name >encodingFilter </filter-name >
        < filter-class> org.springframework.web.filter.CharacterEncodingFilter </filter-class >
        <init-param >
            <param-name >encoding </param-name >
            <param-value >UTF-8 </param-value >
        </init-param >
        <init-param >
            <param-name >forceEncoding </param-name >
            <param-value >true </param-value >
        </init-param >
    </filter >
    <filter-mapping >
        <filter-name >encodingFilter </filter-name >
        <url-pattern >/* </url-pattern >
    </filter-mapping >
</ web-app>

3. 配置cxf.xml文件
    <? 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:context= "http://www.springframework.org/schema/context"
      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://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://cxf.apache.org/jaxrs
        http://cxf.apache.org/schemas/jaxrs.xsd" >

      <import resource = "classpath:META-INF/cxf/cxf.xml" />
      <import resource = "classpath:META-INF/cxf/cxf-servlet.xml" />
      <context:annotation-config />

      <!-- 扫描开启服务的包路径,在base-package下面所有的类都会扫描 -->
      < context:component-scan base-package= "com.sigmatrix.ws" />

      <!-- REST 服务开放 id和address都是唯一的,在这里开通了两个id,ref可以有多个,bean的名称为接口实现类第一个字母小写-->
      <jaxrs:server id = "metadata" address= "/metadata" >
            <jaxrs:serviceBeans >
                 <ref bean = "metadataRestImpl"/>
            </jaxrs:serviceBeans >
      </jaxrs:server >
      <jaxrs:server id = "dictionary" address= "/dictionary" >
            <jaxrs:serviceBeans >
                 <ref bean = "dictionaryRestImpl"/>
            </jaxrs:serviceBeans >
      </jaxrs:server >
</ beans>

4. 要开放的接口加上cxf服务的注解
   接口类:
   public interface IMetadataRest {
      /**
      * 查询所有字典字典项信息
      * @return
      */
      @POST
      @Path( "findAllDictionary")
      public abstract String findAllDictionary();
   }
   接口实现类:
   //加入注解
   @Component
   public class MetadataRestImpl implements IMetadataRest {
      @Override
      public String findAllDictionary () {
            return "Hello World";
     }
   }

5. 部署到tomcat启动即可,测试访问   ip:端口号//项目名称/services/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值