1. 使用 ant 根据 wsdl 文件生成 java 文件
<target name="cxf" depends="init">
<java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true">
<arg value="-client"/>
<arg value="-d"/>
<arg value="${srcjava.dir}"/>
<arg value="wsdl/xxx.wsdl"/>
<classpath>
<path refid="compile.classpath"/>
</classpath>
</java>
</target>
<target name="cxfjar" depends="cxf,compile">
<jar destfile="${lib.dir}/cxf-xxx.jar">
<manifest>
<attribute name="Csapi-Built-By" value="${user.name}"/>
<attribute name="Csapi-Build-Date" value="${today}"/>
<attribute name="Csapi-Release-Tag" value="$Name: $"/>
</manifest>
<fileset dir="${build.dir}/chsi/WEB-INF/classes">
<include name="**/com/xxx/xxx/xxx/handlers/**"/>
</fileset>
</jar>
</target>
2. 把生成的cxf java文件 放入 spring 容器中xxx-cxf.xml:
<bean id="xxxServiceFactory"
class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<property name="serviceClass"
value="WSDL2JAVA生成的业务接口类"/>
<property name="address"
value="${xxx.wsdl.address}"/>
</bean>
<bean id="serviceXxxService"
class="WSDL2JAVA生成的业务接口类"
factory-bean="xxxServiceFactory"
factory-method="create"/>
3.调用或组合webservice提供的方法 生成具体的业务方法:
<bean id="xxxService"
class="com.xxx.xxx.XxxServiceImpl"
parent="baseService">
<property name="itsXxxService" ref="serviceXxxService"/>
<property name="interfaceClassName" value="XxxService"/>
</bean>
注: 其中org.apache.cxf.jaxws.JaxWsProxyFactoryBean起到关键作用。
在其父类ClientProxyFactoryBean中设置了serviceClass和address属性,ClientProxyFactoryBean又代理(组合方法)了ClientFactoryBean类,ClientFactoryBean类的create()方法会生成需要的bean。
ClientProxyFactoryBean的create()方法中
Object obj = Proxy.newProxyInstance(clientFactoryBean.getServiceClass().getClassLoader(), getImplementingClasses(), handler);
其中handler就是由ClientFactoryBean类的create()方法会生成的。
解释了clientFactoryBean.getServiceClass():
public void setServiceClass(Class serviceClass)
{
clientFactoryBean.setServiceClass(serviceClass);
}
利用clientFactoryBean.getServiceClass()、getImplementingClasses()生成了代理bean。
分享到:
相关推荐
用于webservice的开发,主要用到spring+cxf的方式实现webservice的发布与简单调用测试,不懂得可以留言给我,比较显新的框架配置,希望你会喜欢!(并包含拦截器的配置!)
主要介绍了详解Spring boot+CXF开发WebService Demo,非常具有实用价值,需要的朋友可以参考下
SSM+cxf+log4j整合框架;springmvc+spring+mybatis整合开发,内部集成webservice技术,采用cxf框架进行实现,log4j进行日志记录
源码里面包含了了一个简单的插入功能,主要是为了测试mybatis是否连接上数据库的时候写的测试类,作为一个刚学java,被抓壮丁的写服务器端的妹子,我只想说,画了我3周...如题,基于maven项目的ssm框架和cxf框架的整合。
spring4+cxf3,因为自己项目要用到接口开发,所以综合现有网上所有教程,终于成功写出能自动注入的demo,这个是含拦截器
Java web service 入门示例,使用 JAX_WS API 开发,使用 CXF 发布,集成 Spring ,Spring orm 基于 JPA 开发 DAO, 并使用 Spring data jpa 简化 DAO 实现。
Spring是目前最流行的JavaEE Framework,但是使用Spring的Spring-WS开发WebService却...CXF是一个简化WebService开发的开源项目,通过Spring和CXF的结合可以大大简化基于Spring Framework的应用中的WebService开发。
spring4+cxf3,因为自己项目要用到接口开发,所以综合现有网上所有教程,终于成功写出能自动注入的demo
针对j2ee项目开发的web简单框架,集成了mybatis+rest+spring
myeclipse环境下Spring集成开发CXF实例,由于容量限制,相关的JAR没有上传,请大家自己到相关网站下载...
CXF环境配置 - jackymin CXF与Spring的集成 log4j的配置使用 Spring XML配置十二个最佳实践WebService开发实例 (Xfire+Spring+Hibernate)
apache-cxf集成springMVC所需的cxf基本包 测试没问题
CXF 集成 mybatis spring 环境搭建,以及开发所需要的CXF JAR 包
本示例用cxf2.6.1+spring3.1.0+hibernate3.6 开发web services . 包括客户端是java project, cxf_010 服务器端是个web程序cxf_web_010. 其中客户端的com.dx.client 包下的代码是通过wsdl2java的命令生成,复制到...
用webservice中的xfire框架升级到cxf框架开发的实例,供大家分享~~~~
readme下为开发文档。 1.集成 spring 2.集成 WSS4J 3.mtom 功能示例 4.基本数据类型service接口 示例 5.复杂数据类型service接口 示例
CXF简化了构造,集成,面向服务架构(SOA)业务组件与技术的灵活复用。在CXF中,Service使用WSDL标准定义并能够使用各种不同的消息格式(或binding)和网络协议(transports)包括SOAP、XML(通过HTTP或JMS)进行访问。CXF...
本实例是基于CXF的一个客户端的实现,使用maven生成客户端代码,集成spring配置客户端实现类,访问外部接口。“CXF契约优先开发方式”中的实例为服务器端代码。
从apache官网下载的cxf3.1.8中有150多个jar包,好多是用不上的,我精简了一下,然后写了demo,测试过没问题
采用spring3+cxf2.74+bonecp集成的一个开发工程包,采用jackson实现json数据转换,slf4j+logback实现日志管理,bonecp实现连接池.