使用CXF整合Spring开发web service

5月 25, 2015 |

DEMO下载:test-cxf.zip
基于spring-boot-starter-web-services 实现:test-ws.zip

CXF和sping具有很好的结合性,所以CXF是Java 程序员开发web service最佳的选择,本文是一个入门的例子,基本是Writing a service with Spring 的一个拷贝,希望能给那些不想去倒腾CXF官方例子的同仁一点帮助,

服务端的开发步骤:
1、新建maven工程,在pom.xml中添加相应的依赖。
2、定义pojo, 见User
3、定义SPE, 见HelloWorld.java
4、实现服务,见HelloWorldImpl.java
5、配置spring上下文,见applicationContext.xml
6,部署到web 容器,比如tomcat。

客户端的开发步骤
1、新建maven工程,在pom.xml中添加相应的依赖。
2、将服务端的pojo类和SPE拷贝过来,保持包名一致。
3、配置spring上下文,见applicationContext.xml
4、创建ClassPathXmlApplicationContext 进行测试。

记录下有用的点:
1、cxf默认使用的是Java SE Logging  日志框架,要想使用log4j, 需要在classpath中添加log4j.properties文件和提供"-Dorg.apache.cxf.Logger=org.apache.cxf.common.logging.Log4jLogger"jvm 参数,如图:

test-cxf-1
2、在web.xml中声明CXFServlet 的url-pattern时,最好不要映射成根路径,比如"/services/*",这样所有的web service服务都部署在一个统一的路径中,而"/services"成为路径的一部分。
3、当使用soap协议时,使用jaxb框架来进行Java 类和xml 转换的,所以加上@XmlRootElement 注解。

Posted in: cxf | Tags: ,

Comments are closed.