CXF
CXF的前身是Xfire,具体内容可参照http://xfire.codehaus.org/ 。
服务器端开发步骤为:
1、 首先访问http://incubator.apache.org/cxf/ 下载所需的jar包。
2、 新建一个web工程,将下载的CXF的开发包加入到lib中。
3、 在web.xml 文件中添加提供web service的监听servlet,对应的处理类名为org.apache.cxf.transport.servlet.CXFServlet,并设置其启动时装载顺序属性为1;指定访问servlet的URL格式。
如下:
<servlet>
<description>Apache CXF Endpoint</description>
<display-name>cxf</display-name>
<servlet-name>cxf</servlet-name>
<servlet-class>
org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>cxf</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
4、 新建一个cxf-servlet.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:simple="http://cxf.apache.org/simple"
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/simple http://cxf.apache.org/schemas/simple.xsd">
<simple:server id="UploadManageWs"
serviceClass="com.smapp.service.exchange.serviceinterfaces.ws.UploadManageWs" address="/UploadManageWs">
<simple:serviceBean>
<bean class="com.smapp.service.exchange.serviceinterfaces.ws.UploadManageWs" />
</simple:serviceBean>
</simple:server>
</beans>
在如上的配置文件中,我们指定了要发布的服务类名、访问地址等
5、 编写要发布为web service的类和接口。
package com.smapp.service.exchange.serviceinterfaces;
public interface UploadManagerService {
/**
* 查询所有有效的上传文件
* @return 文件列表
*/
public List<Uploaddatafile> findAllUpload();
}
public class UploadManagerServiceImp implements UploadManagerService{
public List<Uploaddatafile> findAllUpload(){
}
}
package com.smapp.service.exchange.serviceinterfaces.ws;
public class UploadManageWs {
private Logger logger = Logger.getLogger(UploadManageWs.class);
public List<Uploaddatafile> findAllUpload() throws Exception{
UploadManagerService iUpload = new UploadManagerServiceImp();
List<Uploaddatafile> result = iUpload.findAllUpload();
return result;
}
}
6、 向lib包中加入Spring的开发包,集成Spring 管理beans;
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
</beans>
7、 发布web应用到对应的web容器进行部署。
8、http://localhost:8080/ServiceManage/services/UploadManageWs?wsdl 即可看到描述信息
客户端的开发步骤:
这里介绍通过wsdl文件生成客户端存根代码的方式,前提是要先下载CXF的工具包。
1、 编辑Ant脚本,可参照如下配置:
<?xml version="1.0"?>
<project name="cxf wsdl2java" basedir=".">
<property name="cxf.home" location ="D:\server\apache-tomcat-6.0.26\webapps\servicemanager\WEB-INF"/>
<path id="cxf.classpath">
<fileset dir="${cxf.home}/lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="cxfWSDLToJava">
<java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true">
<arg value="-client"/>
<arg value="-d"/>
<arg value="e:\src"/>
<arg value="http://localhost:8080/ServiceManage/services/UploadManageWs?wsdl"/>
<classpath>
<path refid="cxf.classpath"/>
</classpath>
</java>
</target>
</project>
上面的UploadManageWs?wsdl为服务器端web service对应的wsdl文件。
2、 运行Ant脚本生成客户端存根代码,
将生成的文件:
Uploaddatafile.java
UploadManageWs.java
UploadManageWsPortType.java
和依赖的CXF包引入到自己的工程即可使用。