Spring 版本3.2.10
CXF 版本3.1.1
项目采用MAVEN组织依赖jar
我这里是有parent的pom,为了简洁明了,我直接把所有的依赖都列一起了,所以都没version,反正上面已经写了版本
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>ws-test</artifactId>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.ws.xmlschema</groupId>
<artifactId>xmlschema-core</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://127.0.0.1:8080/manager</url>
<server>tomcat7</server>
<username>admin</username>
<password>admin</password>
<port>8080</port>
<path>/ws</path>
<charset>utf-8</charset>
</configuration>
</plugin>
</plugins>
</build>
</project>
关于jar需要注意的是:spring使用的是xmlschema,而cxf使用的是xmlschema-core,因此最好显式地写在pom里面,否则会抛异常:
java.lang.NoSuchMethodError: org.apache.ws.commons.schema.XmlSchemaCollection.read
另外,在最开始的配置过程中,遇到了unsupported major.minor version 51.0的异常,也是之前没有遇到过的,后来查了一下发现一般都是因为jdk版本的问题,最后在apache cxf的官网上找到了答案:
The current plan is that CXF 3.1 will no longer support Java 6 and will require Java 7 or newer. Users are strongly encouraged to start moving to Java 7.
好嘛,习惯1.6了……统统升级到1.7吧
保存pom,maven开始工作,duangduang开始向中央仓库拉各种文件,这个时间可以开始创建java类
//接口
@WebService
public interface IHelloWorldService {
public void hello(String name);
}
//实现类
@WebService(endpointInterface="com.myproject.soa.cxf.IHelloWorldService")//endpointInterface是为了在实现多个接口情况下指明webservice的接口
@Component//这个是spring的注解
public class HelloWorldService implements IHelloWorldService {
@Override
public void hello(String name) {
System.out.println("hello "+name);
}
}
接下来再配置spring
applicationContext-core.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:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
">
<context:annotation-config />
<context:component-scan base-package="com.myproject" />
</beans>
applicationContext-webservice.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.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-servlet.xml" />
<!--<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/> cxf 3以上的版本这条配置都去掉了-->
<jaxws:endpoint id="helloworld" implementor="#helloWorldService"
address="/helloworld" />
</beans>
- implementor="#helloWorldService"的写法是使用spring托管的bean的名字,当然也可以写类名,不过太多字懒得敲,毕竟都和spring搞基了,就用spring的方式
- address是最后访问的路径
最后是web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 配置CXF框架的核心Servlet -->
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
完成!
运行mvn tomcat7:run
信息: Setting the server's publish address to be /helloword
六月 25, 2015 4:49:18 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
这时就可以访问http://localhost:8080/ws/helloworld?wsdl,正常的话可以看到一串xml,说明服务端已经完成
分享到:
相关推荐
当我们谈论"CXF3.0.9+SPRING开发webservice例子"时,这意味着我们将探讨如何结合这两个强大的工具来创建和消费Web服务。 首先,让我们深入了解CXF。Apache CXF是基于Java的,它支持多种Web服务标准,如SOAP、...
本教程将深入探讨如何利用Apache CXF 2与Spring 2.5来构建和使用WebService。 首先,让我们理解这两个组件的基本概念。Apache CXF是一个全面的服务框架,它支持多种Web服务规范,如SOAP、RESTful、WS-*等。它提供了...
在本文中,我们将深入探讨如何使用Apache CXF 2与Spring 2.5框架来开发Web服务实例。Apache CXF是一个流行的开源项目,它提供了一种简单且强大的方式来实现和消费SOAP和RESTful Web服务。Spring框架则以其模块化、...
本篇将深入探讨如何利用CXF和Spring来创建、部署和消费Web Service。 CXF,全称CXF Commons eXtensible Framework,是一个开源的Java Web服务框架,它支持多种Web服务标准,如SOAP、RESTful等。CXF允许开发者以Java...
将Spring与CXF整合,可以充分利用Spring的依赖注入和管理能力,使得Web服务的开发、部署和测试更加便捷。下面我们将详细探讨Spring整合CXF的步骤以及如何在Spring中实现Web服务。 1. **环境准备**: 在开始整合...
总结来说,CXF和Spring的整合使得Web服务开发更加便捷和强大。通过Spring的管理能力,我们可以更好地控制服务的生命周期,同时利用Spring的其他特性来增强服务的功能。对于任何希望在Java环境中构建Web服务的人来说...
1. **引入依赖**:首先,在项目中添加CXF和Spring的相关依赖。如果是Maven项目,可以在pom.xml文件中添加对应的依赖项。确保包含CXF的核心库和Spring的上下文库。 2. **配置Spring**:创建一个Spring配置文件(如`...
CXF WebService整合Spring示例工程代码demo可以直接导入eclipse。参照网页http://www.cnblogs.com/hoojo/archive/2011/03/30/1999563.html 完成的webService服务提供。 大致步骤: 1.引入cxf和其他需要的jar包,(本...
【标题】"cxf+spring3.1整合demo"是一个示例项目,它演示了如何将Apache CXF服务框架与Spring 3.1版本进行集成。Apache CXF是一个开源的Web服务框架,它允许开发人员创建和消费各种类型的Web服务,而Spring是一个...
在本教程中,我们将深入探讨如何使用Spring Boot与Apache CXF整合来创建并提供Web服务。Spring Boot以其简化Java应用程序开发的特性而受到广泛欢迎,而CXF则是一个流行的开源框架,用于构建和消费Web服务。当我们...
以上就是Linux环境下,使用CXF整合Spring发布Web服务的基本流程和关键知识点。实际开发中,可能还需要根据具体需求进行更深入的配置和定制,例如支持WSDL第一或第二样式、处理MTOM和SwA等复杂数据交换格式。通过这种...
在Java开发领域,CXF和Spring框架的结合是构建高效、灵活的Web服务的常见选择。CXF是一个开源的SOAP和RESTful Web服务框架,它允许开发者轻松地创建和消费Web服务。而Spring框架则是Java企业级应用的基石,提供了一...
下面将详细阐述如何在Spring环境中整合CXF开发Web Service,并介绍所需的关键jar包。 首先,我们需要理解Spring与CXF整合的基础。Spring通过Spring-WS和Spring-Integration模块提供对Web服务的支持,但CXF提供更...
在IT行业中,Web服务是应用程序之间进行通信的一种标准方法,而CXF和Spring框架的结合则为开发高质量的Web服务提供了强大的支持。本实例将详细阐述如何利用CXF和Spring来构建Web服务的客户端和服务端。 一、CXF简介...
**CXF WebService 整合Spring** 在Java世界中,CXF是一个强大的开源服务框架,它支持多种Web服务标准,包括SOAP、RESTful等。而Spring框架则以其强大的依赖注入和面向切面编程能力,成为了Java开发中的核心框架。将...
4. CXF和Spring的整合:了解如何在Spring应用中配置和使用CXF,利用Spring的ApplicationContext配置Web服务提供者和消费者。 5. 创建Web服务:通过CXF和Spring,实现一个简单的Web服务,包括定义服务接口、实现服务...
web项目使用spring和cxf的一个开发实例,有简单的代码样例和jar。是一个完整的项目,最终发布完成时访问 http://ip:port/项目名称/webservices/ 就会发现你发布的webservice服务。
本文将详细介绍如何使用Apache CXF框架来实现一个简单的WebService——HelloWorld示例。此示例不仅适用于初学者理解WebService的基本概念,同时也能够帮助开发者快速上手CXF框架。CXF是一个强大的开源框架,用于构建...
这是一个重要的技术组合,因为它允许开发人员利用Spring的依赖注入和管理能力,以及CXF的强大Web服务支持。下面我们将详细讲解这个集成过程的关键步骤和相关知识点。 1. **Apache CXF简介**: Apache CXF是一个...
【标题】"Spring+CXF 开发Web Service" 在Java世界中,开发Web服务的一个常见选择是使用Spring框架结合Apache CXF。Spring作为一个强大的轻量级框架,提供了丰富的功能,包括依赖注入、AOP(面向切面编程)以及企业...