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

前面所介绍的cxf发布方式都只给予javase的,以下是基于web的cxf的发布方式的第一种——简单发布


1、导包

      新建一个webproject,然后导入cxf的基本jar包(共67个)

2、web.xml

    在web.xml中加上以下代码

   
  1. <!-- 配置CXF的核心Servlet --> 
  2.     <servlet> 
  3.         <servlet-name>cxf</servlet-name> 
  4.         <!-- 如果名字太长记不住的话,可以通过新建一个类,然后继承的方式来获得类全名 --> 
  5.         <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> 
  6.     </servlet> 
  7.      
  8.      
  9.     <servlet-mapping> 
  10.         <servlet-name>cxf</servlet-name> 
  11.         <url-pattern>/cxf/*</url-pattern> 
  12.     </servlet-mapping> 
<!-- 配置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

  1. package com.njupt.cxf; 
  2.  
  3. import java.text.SimpleDateFormat; 
  4. import java.util.Date; 
  5.  
  6. import javax.jws.WebService; 
  7. import javax.xml.ws.BindingType; 
  8. import javax.xml.ws.soap.SOAPBinding; 
  9.  
  10. @WebService//如果不加,则看不到对外提供方法 
  11. @BindingType(value=SOAPBinding.SOAP12HTTP_BINDING)//将soap1.1协议改成soap1.2协议 
  12. public class HelloService { 
  13.  
  14.     public String sayHello(String name){ 
  15.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss"); 
  16.          
  17.         return sdf.format(new Date()) + " hello " + name; 
  18.     } 
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,其代码如下:

 

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <beans xmlns="http://www.springframework.org/schema/beans" 
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" 
  4.     xmlns:jaxrs="http://cxf.apache.org/jaxrs" xmlns:cxf="http://cxf.apache.org/core" 
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans  
  6.             http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
  7.             http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd 
  8.             http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd 
  9.             http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd"> 
  10.     <!-- 引入CXF Bean定义如下,早期的版本中使用 --> 
  11.     <import resource="classpath:META-INF/cxf/cxf.xml" /> 
  12.     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> 
  13.     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> 
  14.  
  15.  
  16.     <!-- 第一种发布方式:简单发布(没有接口的发布) --> 
  17.     <!-- id:唯一标示  implementor:提供服务的类 address:服务的请求url-->  
  18.     <jaxws:endpoint id="helloService" implementor="com.njupt.cxf.HelloService"  address="/hello"> 
  19.           
  20.          <!-- 加入请求的消息拦截器 --> 
  21.          <jaxws:inInterceptors> 
  22.           
  23.             <!-- 如果名字太长记不住的话,可以通过新建一个类,然后继承的方式来找到类的全名 --> 
  24.             <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean> 
  25.          </jaxws:inInterceptors> 
  26.           
  27.          <!-- 加入响应的消息拦截器 --> 
  28.          <jaxws:outInterceptors> 
  29.             <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean> 
  30.          </jaxws:outInterceptors> 
  31.           
  32.     </jaxws:endpoint>  
  33. </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: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、如果需要调用,参考前面的调用方式即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值