`

CXF Spring整合 ——又一个helloword!

阅读更多
1、到Apache下载cxf的最新jar包  本人的是 2.5.2
地址:http://www.apache.org/dyn/closer.cgi?path=/cxf/2.5.2/apache-cxf-2.5.2.zip

2、新建web项目,整合Spring
右键点击工程名称,MyEclipse->Add Spring Capabilities。
选择Spring version为Spring 2.5,选中Spring 2.5 AOP Libraries、Spring 2.5 Core Libraries、Spring 2.5 Persistence Core Libraries、Spring 2.5 Persistence JDBC Libraries、Spring 2.5 Web Libraries共5个包。选中Copy checked Library contents to project folder (TLDs always copied),点击Next。
点击Next,点击Folder文本框后的Browse,在弹出对话框中选择spring配置文件存储位置为WebRoot/WEB-INF,点击Finish。至此已经完成加载Spring,在WEB-INF文件夹下已经生成了配置文件applicationContext.xml。

3、解压apache-cxf-2.5.2包,将所有jar加载到类路径下

4、首先在web.xml中添加如下配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<!-- 加载Spring容器配置 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<!-- 设置Spring容器加载配置文件路径 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath*:applicationContext-*.xml</param-value>
	</context-param>

	<listener>
		<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
	</listener>

	<servlet>
		<servlet-name>CXFService</servlet-name>
		<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>CXFService</servlet-name>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>

	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>


5、然后在src目录中,新建一个applicationContext-server.xml文件,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context-3.0.xsd
	http://cxf.apache.org/jaxws 
	http://cxf.apache.org/schemas/jaxws.xsd">

	<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" />

</beans>


6、下面开始写服务器端代码,首先定制服务器端的接口,代码如下:
package test;

import javax.jws.WebService;

@WebService
public interface IHelloWorld {
	public String sayHello(String name);
}


下面编写WebService的实现类,服务器端实现代码如下:
package test;

import javax.jws.WebService;

@WebService
public class HelloWorldImpl implements IHelloWorld {

	
	public String sayHello(String name) {
		System.out.println("sayHello is called by " + name);
		return "Hello " + name;
	}

}


注意的是和Spring集成,这里一定要完成接口实现,如果没有接口的话会有错误的。
下面要在applicationContext-server.xml文件中添加如下配置:
<jaxws:endpoint 
	    id="helloWorld" 
	    implementor="test.HelloWorldImpl" 
	    address="/HelloWorld" />

下面启动tomcat服务器后,在WebBrowser中请求:
http://localhost:8088/SnipeCXFServer/HelloWorld?wsdl
如果你能看到wsdl的xml文件的内容,就说明你成功了,注意的是上面地址的HelloWorld就是上面xml配置中的address的名称,是一一对应的。

7、首先增加applicationContext-client.xml配置文件,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jaxws="http://cxf.apache.org/jaxws"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context-3.0.xsd
	http://cxf.apache.org/jaxws 
	http://cxf.apache.org/schemas/jaxws.xsd">
	
	<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"/>
	
	<jaxws:client 
		id="helloWorldClient" 
		address="http://localhost:8088/SnipeCXFServer/HelloWorld" 
		serviceClass="test.IHelloWorld"/>
</beans>


8、下面编写客户端请求的代码,代码如下:
package client;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import test.IHelloWorld;

public class Client {

	public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext-client.xml");
		IHelloWorld helloWorld = (IHelloWorld) context.getBean("helloWorldClient");
		System.out.println(helloWorld.sayHello("Test"));
	}

}


运行后结果如下:
2012-3-9 15:48:37 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http://test/}IHelloWorldService fromclasstest.IHelloWorld
Hello Test
1
0
分享到:
评论

相关推荐

    cxf整合spring

    2. **配置Spring**:创建一个Spring配置文件,声明CXF所需的bean。这可能包括JAX-WS端点、服务实现类、数据绑定组件等。例如,你可以定义一个`JaxWsServerFactoryBean`来启动CXF服务器。 ```xml &lt;bean id="cxf" ...

    cxf+spring整合

    "CXF+Spring整合"是企业级Java应用程序中常用的一种技术组合,它结合了Apache CXF(一个用于构建和服务导向架构的开源框架)和Spring框架的优势,以实现高效、灵活的服务开发和管理。在Java世界里,CXF常用于创建Web...

    CXF Spring 整合

    在Java EE应用开发中,发布和消费Web服务是一项常见的任务,CXF和Spring框架的整合提供了强大而灵活的解决方案。本篇文章将详细讲解如何利用CXF和Spring进行整合,以便在Java EE应用中轻松地发布和调用Web服务。 ...

    CXF和spring整合所需jar包

    在整合过程中,通常会创建一个Spring配置文件,用于声明CXF的服务器端点、服务实现和数据绑定。然后,Spring会根据配置加载并管理这些组件。这样,我们就可以利用Spring的强大功能,如事务管理、安全控制等,同时...

    CXF整合Spring步骤

    5. **配置 Spring**:创建一个 Spring 配置文件,声明 CXF 的服务端点。使用 `&lt;jaxws:endpoint&gt;` 或 `&lt;jaxrs:server&gt;` 标签来定义 CXF 服务,指定服务接口、实现类和发布地址。 ```xml id="myWebService" ...

    cxf spring maven 实例

    【标题】"CXF Spring Maven 实例"是一个关于如何整合并使用这些技术创建Web服务的教程。CXF是一个开源框架,主要用于构建和部署SOAP和RESTful Web服务,Spring则是一个广泛应用的Java企业级开发框架,而Maven是项目...

    webservice cxf spring整合返回list,bean,string,json,xml项目完整实例

    【标题】:在Java EE环境中,使用Apache CXF与Spring框架整合实现Web服务,返回List、Bean、String、JSON及XML的完整项目实例 【描述】:本项目旨在展示如何在Java企业级应用(Java EE)中,通过Apache CXF框架创建...

    spring整合cxf

    在IT行业中,Spring框架是Java领域最常用的轻量级应用框架之一,而CXF则是一个强大的Web服务框架,用于创建和消费SOAP和RESTful服务。本文将深入探讨如何将Spring与CXF整合,以实现高效、灵活的Web服务开发。 首先...

    Spring整合CXF发布服务

    在IT行业中,Spring框架是Java应用开发中的一个关键组件,它提供了一整套服务管理和配置方式,极大地简化了企业级应用的开发。而CXF是一个开源的服务栈,用于构建和开发Web服务。当我们需要在Spring环境中发布Web...

    CXF Spring Web Service 程序

    本篇文章将深入探讨CXF与Spring的结合,以及如何创建一个基于CXF和Spring的Web服务程序。 ### 1. CXF简介 CXF,全称CXF CXF,是 Continued eXtension Framework 的缩写,它的前身是XFire和Celtix两个项目。CXF不仅...

    WebService的CXF整合Spring

    Spring还提供了一个强大的集成环境,可以方便地与其他框架和库进行整合,包括CXF。 将CXF与Spring整合的主要目的是利用Spring的管理能力来配置和控制CXF组件,例如服务端点、客户端代理等。这样可以实现更细粒度的...

    Quartz Spring整合——附带webservice Demo

    Spring 框架则是一个全面的企业级应用开发框架,提供了诸如依赖注入、AOP(面向切面编程)、事务管理等功能。将 Quartz 与 Spring 整合,可以方便地在 Spring 应用程序中使用 Quartz 的功能。 整合 Quartz 和 ...

    cxf与Spring的整合实例(适合初学者)

    **标题解析:** "cxf与Spring的整合实例(适合初学者)" 指的是一个教程或示例项目,旨在帮助初次接触CXF和Spring框架的开发者理解如何将这两个强大的开源工具集成在一起。CXF是一个流行的开源服务框架,常用于构建...

    spring+cxf 整合jar包

    在IT行业中,Spring框架和CXF服务框架的整合是一个常见的任务,主要用于构建高效、灵活的分布式服务系统。本文将深入探讨Spring与CXF整合的核心概念、步骤以及它们各自的功能。 **Spring框架** 是一个开源的应用...

    Spring整合CXF demo

    这个"Spring整合CXF demo"项目提供了一个直观的例子,帮助开发者理解如何在Spring环境中配置和使用CXF服务。 ### 1. Spring框架介绍 Spring是一个开源的Java平台,它提供了全面的应用程序开发框架,简化了Java EE...

    CXF整合spring的客户端和服务端

    综上所述,"CXF整合Spring的客户端和服务端"是一个全面的示例,涵盖了从服务创建到客户端调用的全过程,对于理解和实践SOA和Web服务开发具有很高的价值。同时,提供的文档和配置文件可以帮助开发者快速上手,节省了...

    webservice(cxf)与spring整合源码+文档

    标题"webservice(cxf)与spring整合源码+文档"表明这是一个关于如何将CXF Web服务与Spring框架集成的学习资源。文档和源代码一起提供,使得学习者能够通过实践来理解这一过程。 描述中提到"webservice与spring整合...

    cxf 结合spring所需jar包

    CXF是一个开源的Web服务框架,它支持SOAP、RESTful等多种Web服务标准,而Spring则是一个全面的企业级应用框架,提供了依赖注入、面向切面编程、数据访问等核心功能。接下来,我们将深入探讨CXF与Spring结合开发Web...

    CXF与Spring整合需要的完整jar文件

    Apache CXF是一个开源的Web服务框架,它支持多种Web服务标准,如SOAP、RESTful等。而Spring框架则是Java开发中的核心组件,它提供了依赖注入(DI)和面向切面编程(AOP)等功能,极大地简化了企业级应用的开发。本文...

    CXF+Spring整合资料

    CXF是一个开源的服务框架,主要用于构建和开发Web服务,而Spring则是Java企业级应用的事实标准,提供了一个全面的编程和配置模型。将CXF与Spring整合,可以充分利用Spring的强大功能来管理CXF服务,简化开发过程,并...

Global site tag (gtag.js) - Google Analytics