Spring CXF实例

参考:CXF Spring整合 ——又一个helloword! http://pphqq.iteye.com/blog/1447800
使用apache CXF和maven开发Web Service http://www.cnblogs.com/holbrook/archive/2012/12/12/2814821.html
Web Service的CXF实现(Spring整合方式) http://m.oschina.net/blog/196308
一个依赖问题:
tomcat下运行cxf异常 java.lang.ClassCastException http://m.blog.csdn.net/blog/xyzroundo/9086205
A: 如果希望以一种一致的方式实现webservice,特别是有跨语言的需求时,应该使用Axis2
B: 如果需要在现有的java程序(包括web应用)中增加webservice支持,应该使用CXF

注解:
标注 说明
WebService 将 Java 类标记为实现 Web Service,或者将 Java 接口标记为定义 Web Service 接口
WebMethod 定制Web Service方法
WebParam 定制Web Service方法的参数
WebResult 定制Web Service方法的返回值
SOAPBinding 指定WebService的SOAP映射样式

pom.xml

web.xml

spring-mvc-servlet.xml

applicationContext.xml

User.java

下面开始写服务器端代码,首先定制服务器端的接口,代码如下:
IHelloWorld.java

下面编写WebService的实现类,服务器端实现代码如下:
注意的是和Spring集成,这里一定要完成接口实现,如果没有接口的话会有错误的。
HelloWorldImpl.java

下面要在applicationContext-server.xml文件中添加如下配置: applicationContext-client.xml

下面启动tomcat服务器后,在WebBrowser中请求:
http://localhost:8080/SpringCXF/ws/HelloWorld?wsdl
———————-

如果你能看到wsdl的xml文件的内容,就说明你成功了,注意的是上面地址的HelloWorld就是上面xml配置中的address的名称,是一一对应的。

下面编写客户端请求的代码,代码如下:
Client.java

先运行服务器
在以应用程序的方式运行客户端,得到输出:
……
org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http://service.com/}IHelloWorldService from class com.service.IHelloWorld
服务器返回的信息[客户端传进去的信息]