前面所介绍的cxf发布方式都只给予javase的,以下是基于web的cxf的发布方式的第一种——简单发布
1、导包
新建一个webproject,然后导入cxf的基本jar包(共67个)
2、web.xml
在web.xml中加上以下代码
<!-- 配置CXF的核心Servlet -->
<servlet>
<servlet-name>cxf</servlet-name>
<!-- 如果名字太长记不住的话,可以通过新建一个类,然后继承的方式来获得类全名 -->
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>cxf</servlet-name>
<url-pattern>/cxf/*</url-pattern>
</servlet-mapping>
3、HelloService
package com.njupt.cxf;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.jws.WebService;
import javax.xml.ws.BindingType;
import javax.xml.ws.soap.SOAPBinding;
@WebService//如果不加,则看不到对外提供方法
@BindingType(value=SOAPBinding.SOAP12HTTP_BINDING)//将soap1.1协议改成soap1.2协议
public class HelloService {
public String sayHello(String name){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
return sdf.format(new Date()) + " hello " + name;
}
}
4、cxf-servlet.xml
在web-inf下新建一个file,名为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:jaxws="http://cxf.apache.org/jaxws"
xmlns:jaxrs="http://cxf.apache.org/jaxrs" xmlns:cxf="http://cxf.apache.org/core"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/core http://cxf.apache.org/schemas/core.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" />
<!-- 第一种发布方式:简单发布(没有接口的发布) -->
<!-- id:唯一标示 implementor:提供服务的类 address:服务的请求url-->
<jaxws:endpoint id="helloService" implementor="com.njupt.cxf.HelloService" address="/hello">
<!-- 加入请求的消息拦截器 -->
<jaxws:inInterceptors>
<!-- 如果名字太长记不住的话,可以通过新建一个类,然后继承的方式来找到类的全名 -->
<bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean>
</jaxws:inInterceptors>
<!-- 加入响应的消息拦截器 -->
<jaxws:outInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
</jaxws:outInterceptors>
</jaxws:endpoint>
</beans>
5、将项目部署到tomcat中
6、在地址栏中输入http://localhost:8080/CXF_3/cxf/hello?wsdl进行测试。(如果记不住,输入http://localhost:8080/CXF_3/cxf即可, 然后按照提示一步一步的往下做)
7、如果需要调用,参考前面的调用方式即可
作者:caihongshijie6 发表于2013-6-2 17:37:45
原文链接