1.简介:
Apache CXF = Celtix + Xfire
支持多种协议:
• SOAP1.1,1.2
• XML/HTTP
• CORBA(Common Object Request Broker Architecture公共对象请求代理体系结构,早期语言使用的WS。C,c++,C#)
• 并可以与Spring进行快速无缝的整合
• 灵活的部署:可以运行在Tomcat,Jboss,Jetty(内置),IBMWS,BeaWL上面。
2.下载
下载CXF的开发包:
下载后解压:
3. 入门案例(服务端开发)
第一步:创建动态web项目
第二步:导入CXF相关jar包
第三步:在web.xml中配置CXF框架提供的一个Servlet
<servlet-name>cxf</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<!-- 通过初始化参数指定CXF框架的配置文件位置 -->
<init-param>
<param-name>config-location</param-name>
<param-value>classpath:cxf.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>cxf</servlet-name>
<url-pattern>/service/*</url-pattern>
</servlet-mapping>
第四步:在创建一个cxf.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:jaxws="http://cxf.apache.org/jaxws"
xmlns:soap="http://cxf.apache.org/bindings/soap"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/bindings/soap
http://cxf.apache.org/schemas/configuration/soap.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd">
<!-- 引入CXF Bean定义如下,早期的版本中使用 -->
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
</beans>
第五步:开发一个接口和实现类:
第六步:在cxf.xml中注册服务
tomcat运行:
4. 入门案例(客户端开发)
1.方式一:使用jdk提供的wsimport命令生成本地代码完成调用
上篇文章已介绍过,这里不再介绍
2. 方式二:使用CXF提供的方式(重点)
第一步:创建Java项目并导入CXF相关jar包
第二步:使用wsimport或者CXF提供wsdl2java生成本地代码,只需要生成接口文件
只留下接口,其他的删除
第三步:将接口文件复制到项目中
第四步:在cxf.xml中提供spring配置文件,注册客户端代理对象
address路径是访问网址路径
第五步:读取spring配置文件,创建spring工厂,从工厂中获取代理对象,实现远程调用
右键run as运行:
切换控制台: