基于web的cxf的第一种发布方式——简单发布

前面所介绍的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、如果需要调用,参考前面的调用方式即可

你可能感兴趣的:(基于web的cxf的第一种发布方式——简单发布)