CXF官方网址:http://cxf.apache.org/
CXF官方网址:官网学习地址:http://cxf.apache.org/docs/index.html
官网下载cxf压缩文件:http://cxf.apache.org/download.html
CXF发布WebService有三种方式:main方式,基于和不基于Spring发布到容器
1)main方式
引入jar包,在接口和实现类上使用@WebService即可,发布完成后即可在浏览器中访问url,不需要启动tomcat等服务。
2)不基于Spring方式发布到容器
a)引入cxf的jar包,编写web.xml(配置自定义的CXFServlet,该CXFServlet需要继承CXFNonSpringServlet)
b)编写实体类,业务类和服务类(实体类需要和服务类在同一包下,否则报错)
c)启动Tomcat,即可发布服务
3)基于Spring方式发布到容器
a)web.xml配置(Spring配置,cxf封装的CXFServlet配置)
b)applicationContext-server.xml配置
<!--Import apache CXF bean definition 固定-->
<importresource="classpath:META-INF/cxf/cxf.xml" />
<importresource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<importresource="classpath:META-INF/cxf/cxf-servlet.xml" />
<!--services接口配置 -->
<beanid="helloServicesBean"class="com.ms.services.impl.HelloServicesImpl" />
<!--CXF 配置WebServices的服务名及访问地址 -->
<jaxws:serverid="helloServices" address="/HelloServices"
serviceClass="com.ms.services.IHelloServices">
<!--要暴露的webservice服务 -->
<jaxws:serviceBean>
<refbean="helloServicesBean"/>
</jaxws:serviceBean>
</jaxws:server>
c)编写类
实体类
服务接口(类头使用@WebService)
服务实现(类头使用@WebService(endpointInterface="com.ms.services.IHelloServices"))
CXF客户端调用Webservices步骤
使用命令生成Webservices客户端
下载CXF apache-cxf-3.1.4 进行解压
使用cmder 进入到apache-cxf-3.1.4/bin目录 cmder工具已经在前一篇文章已经介绍过如何使用;
生成客户端代理类命令如下:
wsdl2java -p com.markor.ws.soap.service.client.impl.stubs.a djutOrderLock -d d:\cs
xfoutput\src -all C:\Users\liuguodong\Desktop\z_rtsd_sd061.wsdl
-p 也就是package 对应java中的包
-d 输入目录,生成.java文件会在该目录,会自动添加-p参数配置的包路径
-client 生成客户端测试web service的代码.
-server 生成服务器启动web service的代码.
-impl 生成web service的实现代码.
-ant 生成build.xml文件.
-all 生成上面-client -server -impl -ant 对应的所有文件.
会生成相应调用测试代码,使用时可以进行参考非常方便.