CXF-JAX-RS开发(二)spring整合CXF-JAX-RS
一、创建maven工程[Packaging:war]
1、目录结构
2、坐标书写
二、导入依赖和tomcat服务器插件
<dependencies>
<!-- CXF -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>3.0.1</version>
</dependency>
<!-- 日志 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>1.7.12</version>
</dependency>
<!-- rs的客户端 -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-client</artifactId>
<version>3.0.1</version>
</dependency>
<!-- CXF的json转换器,拓展json -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-extension-providers</artifactId>
<version>3.0.1</version>
</dependency>
<!-- 转换json的工具包,被cxf-rt-rs-extension-providers包依赖 -->
<dependency>
<groupId>org.codehaus.jettison</groupId>
<artifactId>jettison</artifactId>
<version>1.3.7</version>
</dependency> <!-- Spring配置start -->
!-- Spring核心 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<!-- Spring与Web集成 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<!-- Spring配置end --> <!-- 测试配置start -->
<!-- Spring与Junit整合 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<!-- Junit包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<!-- 测试配置end -->
</dependencies>
<build>
<plugins>
<!-- tomcat服务器插件 -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<port>9800</port>
</configuration>
</plugin>
</plugins>
</build>
三、配置web.xml
同CXF-JAX-WS开发(二)spring整合CXF-JAX-WS博文中一、服务端4、配置web.xml
四、搭建服务端
1、导入javabean
1.1、目录结构
1.2、domain
参考CXF-JAX-WS开发(一)入门案例,2.4.1、导入实体bean目录下的实体类Car.java和User.java
1.3、service
参考CXF-JAX-RS开发(一)入门案例,二、quickstart3.2、构建服务bean目录下的IUserService.java和UserServiceImpl.java
2、添加注解
参考CXF-JAX-RS开发(一)入门案例,二、quickstart3.3、添加注解
3、配置applicationContext.xml
3.1、所在目录
3.2、配置内容
3.2.1、applicationContext.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: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/jaxrs
http://cxf.apache.org/schemas/jaxrs.xsd">
<jaxrs:server id="userService" address="/userService" >
<jaxrs:serviceBeans>
<bean class="org.spring_cxf_rs.service.UserServiceImpl" />
</jaxrs:serviceBeans>
<jaxrs:inInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingInInterceptor" />
</jaxrs:inInterceptors>
<jaxrs:outInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
</jaxrs:outInterceptors>
</jaxrs:server>
</beans>
3.2.2、log4j.properties
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=c:/mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ### set log levels - for more verbose logging change 'info' to 'debug' ### log4j.rootLogger=info, stdout
五、发布服务
tomcat:run
六、测试
1、浏览器
1.1、测试路径
1.2、测试结果
1.2.1、查询所有用户:http://localhost:9800/spring_cxf_rs/services/userService/user
1.2.2、查询id为1用户:http://localhost:9800/spring_cxf_rs/services/userService/user/1
2、WebClient工具类
同CXF-JAX-RS开发(一)入门案例,二、quickstart,5.2、WebClient 工具类[CXF 自带的工具包]
七、CXF-JAX-WS和CXF-JAX-RS对比
对比项目 |
CXF-JAX-WS | CXF-JAX-RS |
全称 |
JavaTM API for XML-Based Web Services |
JavaTM API for RESTful Web Services |
soa架构风格 |
动词为中心,指定执行的函数 |
名词为中心,指定访问的资源[url] |
引入 |
Java EE 5引入 |
Java EE 6引入 |
数据格式 |
XML |
XML|JSON |
基于协议 |
SOPA[=HTTP+XML] |
HTTP [按照标准指定URL,就可以访问数据] |
总结 |
JAX-RS简单,不用wsimport生成客户端。 |
|
备注 |
TM:TRADEMARK |
最新文章
- 安卓中自定义并使用Volley框架请求网络
- property和attribute的区别
- ASPNET服务端控件练习(一个机试题)
- [转载] TCP协议缺陷不完全记录
- android 插件化开发 开源项目列表
- linux spi驱动开发学习-----spidev.c和spi test app
- iOS设计模式解析(五)责任链模式
- WebForm页面生命周期WEBFORM_ASPNET控件树的生成和作用
- 机器学习---最小二乘线性回归模型的5个基本假设(Machine Learning Least Squares Linear Regression Assumptions)
- Android的LinearLayout中orientation默认值为什么是HORIZONTAL
- Java开发瓶颈,Dubbo架构学习整理
- C++ 通过ostringstream 实现任意类型转string
- 转:zTree树控件入门之checkbox:如何动态设置节点的checkbox选择框启用与禁用状态(chkDisabled)
- 浏览器中的data类型的Url格式,data:image/png,data:image/jpeg!(源自:http://blog.csdn.net/roadmore/article/details/38498719)
- Zookeeper概念学习系列之paxos协议
- unity收集log工具
- Java中I/O流之Print流
- 数据结构与算法分析java——线性表3 (LinkedList)
- Centos 6.5 hadoop 2.2.0 全分布式安装
- android打开文件、保存对话框、创建新文件夹对话框(转载)
热门文章
- SVG格式图片转成HTML中SVG的Path路径
- [bzoj1455]罗马游戏_左偏树_并查集
- Spring Data Jpa-动态查询条件
- N天学习一个linux命令之netstat
- post and get
- SSH整合开发时Scope为默认时现象与原理
- 一键免费升级Windows 10
- axis实现webservices分布式通信
- AWS OpsWorks新增Amazon RDS支持
- extjs_07_combobox&;amp;tree&;amp;chart