web service012——cxf的启动流程和调用方法

Posted 江州益彤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web service012——cxf的启动流程和调用方法相关的知识,希望对你有一定的参考价值。

一、创建动态web工程,导入cxf的jar包

二、发布不是接口的类

2.1、被发布的类

2.2、web.xml文件的配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>CxfSpringWeb</display-name>
  	<!-- 
		一、发布和访问流程
		1、当访问http://localhost:8080/CxfSpringWeb/ws时,进入到CXFServlet;
		   通过servlet的init方法引入配置文件cxf-servlet.xml(这是spring的配置文件);
		   CXFServlet调用spring的核心代码取解析cxf-servlet.xml文件,获取到对应的配置信息;
		   然后调用JaxWsServerFactoryBean来发布webservice
		   
		通过反射机制获得.calss,从而可以发布对应方法
		   
		二、第一次访问servlet很慢
		1、原因是servlet的生命周期,servlet第一次访问时需要初始化
		 	配置文件cxf-servlet.xml在第一次访问时采取解析
		2、解决方法
			配置文件cxf-servlet.xml是spring的配置文件。可以通过的spring的listener取解析
			(服务器已启动就去加载)		
	 -->
	 
	 <!-- ==================解决访问慢================ -->
	<context-param>
	    <param-name>contextConfigLocation</param-name>
	    <param-value>/WEB-INF/cxf-servlet.xml</param-value> 
	</context-param>
	 
	<listener>
	    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
  	<!-- =============================================-->
    <servlet>
	    <!-- 配置cxf -->
	    <servlet-name>cxf</servlet-name>
	    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
	    
	   <!--  spring的配置文件,在这里配置第一次访问很忙,不采用 -->
	    <!--<init-param> 
	        <param-name>config-location</param-name>
	        <param-value>/WEB-INF/cxf-servlet.xml</param-value> 
	    </init-param>-->
    </servlet>
  
    <servlet-mapping>
 	    <servlet-name>cxf</servlet-name>
 	    <url-pattern>/ws/*</url-pattern>
    </servlet-mapping>
  
    <welcome-file-list>
  	    <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

2.3、cxf-servlet.xml文件的配置

<jaxws:inInterceptors>
 	        <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean>
 	    </jaxws:inInterceptors>

2.4、附:决访问慢的问题时,cxf-servlet.xml文件的配置的说明

2.5、验证

三、发布实现接口的类

3.1、被发布的接口和类


xml文件的配置如上

3.2、验证

四、调用发布的webservice

4.1、创建Java项目

4.2、添加jar包

4.3、生成Java文件


4.4、配置xml文件(xml文件名自定义)

新建客户端的实现类

开启服务端,通过客户端连接验证

以上是关于web service012——cxf的启动流程和调用方法的主要内容,如果未能解决你的问题,请参考以下文章

在Myeclipse下使用CXF和Spring开发Web Service

Web Service 实现之CXF

CXF实战之在Tomcat中公布Web Service

Axis2 webservice 和 CXF web service 的区别

使用cxf写web service的简单实例

web service010——cxf的简单介绍