webservice jax-rs与spring整合

本文介绍如何使用Maven构建工具引入Apache CXF库来创建WebService应用。详细解释了依赖配置、Spring配置文件设置、Web配置及请求路径构造方法,并提供了调用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

maven工程导入相关坐标

<!-- 导入webservice依赖 -->
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>${cxf.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxrs</artifactId>
            <version>${cxf.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-rs-client</artifactId>
            <version>${cxf.version}</version>
        </dependency>   

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-rs-extension-providers</artifactId>
            <version>${cxf.version}</version>
        </dependency>

        <dependency>
            <groupId>org.codehaus.jettison</groupId>
            <artifactId>jettison</artifactId>
            <version>1.3.7</version>
        </dependency>

applicationContext.xml配置

<!-- id的名称与你所定义的接口的名称相同,同时首字母小写;address:自定义的,名称最好规范:与ID名称一样 -->
<jaxrs:server id="xxxService" address="/xxxService">
     <jaxrs:serviceBeans>
   <!-- 配置服务接口的实现类 -->
       <bean class="com.kayo.main.service.impl.XxxServiceImpl" />
     </jaxrs:serviceBeans>
   <!-- 配置的服务的日志监听,不是必须配置 -- >
     <jaxrs:inInterceptors>
       <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean>
     </jaxrs:inInterceptors>
     <jaxrs:outInterceptors>
       <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
     </jaxrs:outInterceptors>
  </jaxrs:server>
配置的每一个实体类的所有操作

web.xml配置

<servlet>
        <servlet-name>CXFService</servlet-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>CXFService</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

请求路径:
每一个webservice接口的请求路径的拼接:
项目的启动URL + web.xml中url-pattern的路径+applicationContext-webservice中address + 接口类中的方法中@Path路径

方法调用

        WebClient.create("请求路径").type(MediaType.APPLICATION_JSON).post(实体类对象);

webservice中的注解
@GET 查 / @POST 增 / @PUT 改 / @DELETE 删

@Produces
方法的返回类型 生产者
@Consumes
方法的参数类型 消费者
注:如果返回类型或参数类型是基本数据类型+String,则可省略

@Path 路径
定义在方法上,表示访问这个方法的路径
定义在类名上,表示整个类的访问路径 ,等价于在webservices配置文件中配置的 address

@PathParam
方法@Path路径后所带的参数
@QueryParam
表单中提交的过来的参数数据

去几年,REST逐渐成为影响Web框架、Web协议Web应用设计的重要概念。如果你还不了解REST,那这个简短的介绍将有助你快速掌握REST,此外还可以点击这里了解关于REST的更多信息。 相关厂商内容 高速下载:Adobe Flash Builder 4 简体中文正式版 for Windows 高速下载:Adobe Flash Builder 4 简体中文正式版 for Mac 利用Flex SDK创建易于访问的Adobe AIR应用程序 Adobe和英特尔联手推新服务帮助开发者发行AIR应用 构建更加完善的Adobe AIR应用程序之十大秘诀 相关赞助商 汇集最新RIA技术相关资源,提供Flash开发平台相关工具高速下载,免费获得Adobe软件的产品序列号。 现在有越来越多的公司希望能以简单而又贴合Web架构本身的方式公开Web API,因此REST变得越来越重要也就不足为奇了。使用Ajax进行通信的富浏览器端也在朝这个目标不断迈进。这个架构原则提升了万维网的可伸缩性,无论何种应用都能从该原则中受益无穷。 JAX-RS(JSR 311)指的是Java API for RESTful Web Services,Roy Fielding也参JAX-RS的制订,他在自己的博士论文中定义了REST。对于那些想要构建RESTful Web Services的开发者来说,JAX-RS给出了不同于JAX-WS(JSR-224)的另一种解决方案。目前共有4种JAX-RS实现,所有这些实现都支持Spring,Jersey则是JAX-RS的参考实现,也是本文所用的实现。 如果你使用Spring进行开发,那可能想知道(或者有人曾问过你)Spring MVCJAX-RS有何异同点?更进一步,如果你手头有一个Spring MVC应用,使用了控制类继承(SimpleFormController等),你可能还意识不到现在的Spring MVC对REST广泛的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值