`
木头.java
  • 浏览: 6406 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[1]CXF3.1整合Spring开发webservice——helloworld篇

阅读更多
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,说明服务端已经完成
0
0
分享到:
评论

相关推荐

    CXF3.0.9+SPRING开发webservice例子

    当我们谈论"CXF3.0.9+SPRING开发webservice例子"时,这意味着我们将探讨如何结合这两个强大的工具来创建和消费Web服务。 首先,让我们深入了解CXF。Apache CXF是基于Java的,它支持多种Web服务标准,如SOAP、...

    Apache CXF2+Spring2.5轻松实现WebService

    本教程将深入探讨如何利用Apache CXF 2与Spring 2.5来构建和使用WebService。 首先,让我们理解这两个组件的基本概念。Apache CXF是一个全面的服务框架,它支持多种Web服务规范,如SOAP、RESTful、WS-*等。它提供了...

    CXF2+Spring2.5开发WebService实例

    在本文中,我们将深入探讨如何使用Apache CXF 2与Spring 2.5框架来开发Web服务实例。Apache CXF是一个流行的开源项目,它提供了一种简单且强大的方式来实现和消费SOAP和RESTful Web服务。Spring框架则以其模块化、...

    cxf+spring实现webservice

    本篇将深入探讨如何利用CXF和Spring来创建、部署和消费Web Service。 CXF,全称CXF Commons eXtensible Framework,是一个开源的Java Web服务框架,它支持多种Web服务标准,如SOAP、RESTful等。CXF允许开发者以Java...

    Spring整合CXF步骤,Spring实现webService,spring整合WebService

    将Spring与CXF整合,可以充分利用Spring的依赖注入和管理能力,使得Web服务的开发、部署和测试更加便捷。下面我们将详细探讨Spring整合CXF的步骤以及如何在Spring中实现Web服务。 1. **环境准备**: 在开始整合...

    cxf整合spring

    总结来说,CXF和Spring的整合使得Web服务开发更加便捷和强大。通过Spring的管理能力,我们可以更好地控制服务的生命周期,同时利用Spring的其他特性来增强服务的功能。对于任何希望在Java环境中构建Web服务的人来说...

    WebService的CXF整合Spring

    1. **引入依赖**:首先,在项目中添加CXF和Spring的相关依赖。如果是Maven项目,可以在pom.xml文件中添加对应的依赖项。确保包含CXF的核心库和Spring的上下文库。 2. **配置Spring**:创建一个Spring配置文件(如`...

    CXF WebService整合Spring示例工程代码demo

    CXF WebService整合Spring示例工程代码demo可以直接导入eclipse。参照网页http://www.cnblogs.com/hoojo/archive/2011/03/30/1999563.html 完成的webService服务提供。 大致步骤: 1.引入cxf和其他需要的jar包,(本...

    cxf+spring3.1整合demo

    【标题】"cxf+spring3.1整合demo"是一个示例项目,它演示了如何将Apache CXF服务框架与Spring 3.1版本进行集成。Apache CXF是一个开源的Web服务框架,它允许开发人员创建和消费各种类型的Web服务,而Spring是一个...

    springboot(5) 整合cxf提供webservice服务

    在本教程中,我们将深入探讨如何使用Spring Boot与Apache CXF整合来创建并提供Web服务。Spring Boot以其简化Java应用程序开发的特性而受到广泛欢迎,而CXF则是一个流行的开源框架,用于构建和消费Web服务。当我们...

    cxf整合spring发布webservice(源码)

    以上就是Linux环境下,使用CXF整合Spring发布Web服务的基本流程和关键知识点。实际开发中,可能还需要根据具体需求进行更深入的配置和定制,例如支持WSDL第一或第二样式、处理MTOM和SwA等复杂数据交换格式。通过这种...

    CXF和Spring搭建webservice代码

    在Java开发领域,CXF和Spring框架的结合是构建高效、灵活的Web服务的常见选择。CXF是一个开源的SOAP和RESTful Web服务框架,它允许开发者轻松地创建和消费Web服务。而Spring框架则是Java企业级应用的基石,提供了一...

    spring整合CXF开发webService所需jar包

    下面将详细阐述如何在Spring环境中整合CXF开发Web Service,并介绍所需的关键jar包。 首先,我们需要理解Spring与CXF整合的基础。Spring通过Spring-WS和Spring-Integration模块提供对Web服务的支持,但CXF提供更...

    cxf+spring开发webservice客户端与服务端实例

    在IT行业中,Web服务是应用程序之间进行通信的一种标准方法,而CXF和Spring框架的结合则为开发高质量的Web服务提供了强大的支持。本实例将详细阐述如何利用CXF和Spring来构建Web服务的客户端和服务端。 一、CXF简介...

    CXF WebService整合Spring

    **CXF WebService 整合Spring** 在Java世界中,CXF是一个强大的开源服务框架,它支持多种Web服务标准,包括SOAP、RESTful等。而Spring框架则以其强大的依赖注入和面向切面编程能力,成为了Java开发中的核心框架。将...

    Webservice入门教程_用CXF编写基于Spring的WebService示例代码.zip

    4. CXF和Spring的整合:了解如何在Spring应用中配置和使用CXF,利用Spring的ApplicationContext配置Web服务提供者和消费者。 5. 创建Web服务:通过CXF和Spring,实现一个简单的Web服务,包括定义服务接口、实现服务...

    cxf+spring开发webservice实例(java)

    web项目使用spring和cxf的一个开发实例,有简单的代码样例和jar。是一个完整的项目,最终发布完成时访问 http://ip:port/项目名称/webservices/ 就会发现你发布的webservice服务。

    使用CXF发布和调用webservice之HelloWorld入门

    本文将详细介绍如何使用Apache CXF框架来实现一个简单的WebService——HelloWorld示例。此示例不仅适用于初学者理解WebService的基本概念,同时也能够帮助开发者快速上手CXF框架。CXF是一个强大的开源框架,用于构建...

    CXF2.7+Spring3 Java WebService 集成用例

    这是一个重要的技术组合,因为它允许开发人员利用Spring的依赖注入和管理能力,以及CXF的强大Web服务支持。下面我们将详细讲解这个集成过程的关键步骤和相关知识点。 1. **Apache CXF简介**: Apache CXF是一个...

    spring+cxf 开发webservice

    【标题】"Spring+CXF 开发Web Service" 在Java世界中,开发Web服务的一个常见选择是使用Spring框架结合Apache CXF。Spring作为一个强大的轻量级框架,提供了丰富的功能,包括依赖注入、AOP(面向切面编程)以及企业...

Global site tag (gtag.js) - Google Analytics