概述:
CXF是Apache的一个Web Service框架。搭配Jax-Ws使用将部署好的web service发布到tomcat容器中
简单案例:
1、 首先准备好Jar包。可以到apache的官网下载
2、 将下载好的Jar包一次性导入到项目目录[WEB-INF/lib]文件夹下面
3、 解压lib里面的cxf.jar文件,将解压目录下面的[META-INF/cxf]copy到项目的META-INF下面
4、 编写web service接口
- @WebService(name = "CxfTester", targetNamespace = "http://org.cxf.com/")
- public interface CxfTester {
- public String sendMessage(String sendTo,String message);
- }
5、 编写服务接口实现类
- @WebService(endpointInterface = "com.cxf.org.CxfTester")
- public class CxfTesterImpl implements CxfTester {
- @Override
- public String sendMessage(String sendTo, String Message) {
- String str = "发送到:" + sendTo + "信息详情:" + Message;
- return str;
- }
- }
6、 在WEB-INF/建立一个文件夹名为classes。并且新建一个xml文件、名为application
Context.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"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
- <!-- 导入cxf.jar解压出来的文件 -->
- <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"/>
- <!-- 声明Endpoint,
- address 为访问地址的部分地址
- implementor 为实现类
- -->
- <jaxws:endpoint id="CxFTester"
- address="/CxfTester"
- implementor="com.cxf.org.CxfTesterImpl"/>
- <!-- 指定客户端访问相关情况
- class 服务端接口
- factory-bean 引用下面声明的类
- factory-method 客户端生成调用对象所用方法
- -->
- <bean id="client"
- class="com.cxf.org.CxfTester"
- factory-bean="clientFactory"
- factory-method="create"></bean>
- <!-- 配置CXF服务代理bean
- serviceClass : 服务端接口
- address : 访问地址jaxws:endpoint声明的address在项目名的后面,此处的路径和web.xml配置的urlpattern有联系
- -->
- <bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
- <property name="serviceClass" value="com.cxf.org.CxfTester"></property>
- <property name="address" value="http://192.168.1.104:8080/Apache_CXF_1/CxfTester"></property>
- </bean>
7、 编辑web.xml,设置容器启动加载applicationContext.xml文件。并且配置CXFServlet
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- id="WebApp_ID" version="2.5">
- <display-name>Apache_CXF</display-name>
- <welcome-file-list>
- <welcome-file>index.html</welcome-file>
- <welcome-file>index.htm</welcome-file>
- <welcome-file>index.jsp</welcome-file>
- <welcome-file>default.html</welcome-file>
- <welcome-file>default.htm</welcome-file>
- <welcome-file>default.jsp</welcome-file>
- </welcome-file-list>
- <!-- 配置启动加载项目 -->
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>WEB-INF/classes/applicationContext.xml</param-value>
- </context-param>
- <!-- 配置监听 -->
- <listener>
- <listener-class>
- org.springframework.web.context.ContextLoaderListener
- </listener-class>
- </listener>
- <!-- 部署servlet -->
- <servlet>
- <servlet-name>CXFServlet</servlet-name>
- <servlet-class>
- org.apache.cxf.transport.servlet.CXFServlet
- </servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>CXFServlet</servlet-name>
- <url-pattern>/*</url-pattern>
- </servlet-mapping>
- </web-app>
8、 发布项目、启动tomcat并且访问wsdl文件
http://localhost:8080/Apache_CXF_1/CxfTester?wsdl
源码下载地址:
http://pan.baidu.com/share/link?shareid=216475&uk=1997312776