一、创建maven工程[Packaging:war]
1、目录结构
2、坐标书写
二、导入依赖和tomcat服务器插件
1 <dependencies> 2 <!-- CXF --> 3 <dependency> 4 <groupId>org.apache.cxf</groupId> 5 <artifactId>cxf-rt-frontend-jaxrs</artifactId> 6 <version>3.0.1</version> 7 </dependency> 8 <!-- 日志 --> 9 <dependency> 10 <groupId>org.slf4j</groupId> 11 <artifactId>log4j-over-slf4j</artifactId> 12 <version>1.7.12</version> 13 </dependency> 14 <!-- rs的客户端 --> 15 <dependency> 16 <groupId>org.apache.cxf</groupId> 17 <artifactId>cxf-rt-rs-client</artifactId> 18 <version>3.0.1</version> 19 </dependency> 20 <!-- CXF的json转换器,拓展json --> 21 <dependency> 22 <groupId>org.apache.cxf</groupId> 23 <artifactId>cxf-rt-rs-extension-providers</artifactId> 24 <version>3.0.1</version> 25 </dependency> 26 <!-- 转换json的工具包,被cxf-rt-rs-extension-providers包依赖 --> 27 <dependency> 28 <groupId>org.codehaus.jettison</groupId> 29 <artifactId>jettison</artifactId> 30 <version>1.3.7</version> 31 </dependency> 32 33 <!-- Spring配置start --> 34 !-- Spring核心 --> 35 <dependency> 36 <groupId>org.springframework</groupId> 37 <artifactId>spring-context</artifactId> 38 <version>4.1.7.RELEASE</version> 39 </dependency> 40 <!-- Spring与Web集成 --> 41 <dependency> 42 <groupId>org.springframework</groupId> 43 <artifactId>spring-web</artifactId> 44 <version>4.1.7.RELEASE</version> 45 </dependency> 46 <!-- Spring配置end --> 47 48 <!-- 测试配置start --> 49 <!-- Spring与Junit整合 --> 50 <dependency> 51 <groupId>org.springframework</groupId> 52 <artifactId>spring-test</artifactId> 53 <version>4.1.7.RELEASE</version> 54 </dependency> 55 <!-- Junit包 --> 56 <dependency> 57 <groupId>junit</groupId> 58 <artifactId>junit</artifactId> 59 <version>4.11</version> 60 </dependency> 61 <!-- 测试配置end --> 62 </dependencies> 63 <build> 64 <plugins> 65 <!-- tomcat服务器插件 --> 66 <plugin> 67 <groupId>org.codehaus.mojo</groupId> 68 <artifactId>tomcat-maven-plugin</artifactId> 69 <version>1.1</version> 70 <configuration> 71 <port>9800</port> 72 </configuration> 73 </plugin> 74 </plugins> 75 </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
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:jaxrs="http://cxf.apache.org/jaxrs" 5 xsi:schemaLocation=" 6 http://www.springframework.org/schema/beans 7 http://www.springframework.org/schema/beans/spring-beans.xsd 8 http://cxf.apache.org/jaxrs 9 http://cxf.apache.org/schemas/jaxrs.xsd"> 10 <jaxrs:server id="userService" address="/userService" > 11 <jaxrs:serviceBeans> 12 <bean class="org.spring_cxf_rs.service.UserServiceImpl" /> 13 </jaxrs:serviceBeans> 14 <jaxrs:inInterceptors> 15 <bean class="org.apache.cxf.interceptor.LoggingInInterceptor" /> 16 </jaxrs:inInterceptors> 17 <jaxrs:outInterceptors> 18 <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor" /> 19 </jaxrs:outInterceptors> 20 </jaxrs:server> 21 </beans>
3.2.2、log4j.properties
1 ### direct log messages to stdout ### 2 log4j.appender.stdout=org.apache.log4j.ConsoleAppender 3 log4j.appender.stdout.Target=System.out 4 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 5 log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 6 7 ### direct messages to file mylog.log ### 8 log4j.appender.file=org.apache.log4j.FileAppender 9 log4j.appender.file.File=c:/mylog.log 10 log4j.appender.file.layout=org.apache.log4j.PatternLayout 11 log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 12 13 ### set log levels - for more verbose logging change 'info' to 'debug' ### 14 15 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 |