`

CXF2.1+Spring实现WebService

阅读更多
  1. 首先应该把需要的包找齐了,就目前而言应该是apache-cxf-2.1.,下栽地址http://cxf.apache.org/download.html
  2. 建立web工程,导入所需要用到的包,如下: 
    webservice所需要的包:
    commons-logging-1.1.jar
    geronimo-activation_1.1_spec-1.0-M1.jar (or Sun's Activation jar)
    geronimo-annotation_1.0_spec-1.1.jar (JSR 250)
    geronimo-javamail_1.4_spec-1.0-M1.jar (or Sun's JavaMail jar)
    geronimo-servlet_2.5_spec-1.1-M1.jar (or Sun's Servlet jar)
    geronimo-ws-metadata_2.0_spec-1.1.1.jar (JSR 181)
    jaxb-api-2.1.jar
    jaxb-impl-2.1.6.jar
    jaxws-api-2.1.jar
    jetty-6.1.5.jar
    jetty-util-6.1.5.jar
    neethi-2.0.jar
    saaj-api-1.3.jar
    saaj-impl-1.3.jar
    stax-api-1.0.1.jar
    wsdl4j-1.6.1.jar
    wstx-asl-3.2.1.jar
    XmlSchema-1.2.jar
    xml-resolver-1.2.jar
    
    整合spring所需要的包:
    aopalliance-1.0.jar
    spring-core-2.0.4.jar
    spring-beans-2.0.4.jar
    spring-context-2.0.4.jar
    spring-web-2.0.4.jar
    
    CXF2.1框架所需包:
    cxf-2.1.jar
    cxf-manifest.jar
     
  3.  新建一个接口类:HelloWorld,如下:
    package com.zx.cxf.service;   
      
    import javax.jws.WebParam;   
    import javax.jws.WebService;   
      
    @WebService  
    public interface HelloWorld {   
        String sayHi(@WebParam(name="text") String text);   
    }  
    
     
  4. 创建接口的实现类:HelloWorldImpl,如下
    package com.zx.cxf.service;   
      
    import javax.jws.WebService;   
      
    import com.zx.cxf.service.HelloWorld;   
    @WebService
    public class HelloWorldImpl implements HelloWorld {   
        
        public String sayHi(String text) {   
            return "Hello " + text;   
        }   
    }  
  5.  在WEB-INF目录下新建beans.xml,如下:
    <?xml version="1.0" encoding="gb2312"?>
    <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-2.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" />
    
    	<bean id="helloWordBean" class="com.zx.cxf.service.HelloWorldImpl" />	
    	<jaxws:server id="registerWebService" serviceClass="com.zx.cxf.service.HelloWorldImpl" address="/HelloWorld">
    		<jaxws:serviceBean>
    			<ref bean="helloWordBean" />
    		</jaxws:serviceBean>
    	</jaxws:server>
    </beans>
     
  6. 修改web.xml文件,如下:
    <?xml version="1.0" encoding="ISO-8859-1"?>  
      
    <!DOCTYPE web-app   
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"   
        "http://java.sun.com/dtd/web-app_2_3.dtd">  
      
    <!-- START SNIPPET: webxml -->  
    <web-app>  
        <context-param>  
            <param-name>contextConfigLocation</param-name>  
            <param-value>/WEB-INF/beans.xml</param-value>  
        </context-param>  
      
        <listener>  
            <listener-class>  
                org.springframework.web.context.ContextLoaderListener   
            </listener-class>  
        </listener>  
      
        <servlet>  
            <servlet-name>CXFServlet</servlet-name>  
            <display-name>CXF Servlet</display-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>/services/*</url-pattern>  
        </servlet-mapping>  
    </web-app>  
    <!-- END SNIPPET: webxml -->  
    
     
  7. 启动tomcat
    测试:简单的测试就是ie测试,在浏览器中输入http://localhost:8080/CxfService/services/,如果出现

    {http://service.cxf.zx.com/}HelloWorldImplPort ,或者输入http://localhost:8080/CxfService/services/HelloWorld?wsdl,出现wsdl文挡,则说明服务器端配置成功。

  8. 以上是服务端的配置,若成功则配置客户端.(此处服务端和客户端是两个不同的应用程序)

  9. 在客户端项目根目录添加

    <?xml version="1.0"?>
    <project name="cxf wsdl2java" basedir="." default="">   
       <property name="cxf.home" location ="D:\apache-cxf-2.1"/>
    	
       <path id="cxf.classpath">
          <fileset dir="${cxf.home}/lib">
             <include name="*.jar"/>
          </fileset>
       </path>
          
       <target name="register">(此名称可任意)
          <java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true">
             <arg value="-client"/>
             <arg value="-d"/>
             <arg value="src"/>
             <arg value="-p"/>
             <arg value="com.south.webapp.action.member.bbsclient"/>(生成本地存根的目录,需自己手动建立)
             <arg value="http://bbs.south.com/bbs/service/HelloWord?wsdl"/>(此处为服务端webservice服务访问路径)
             <classpath>
                <path refid="cxf.classpath"/>
             </classpath>
          </java>
       </target>
    </project>

     

  10. 累了,要睡觉了,未完待续吧.

 

 

分享到:
评论

相关推荐

    cxf2.1jar包

    CXF 2.1 JAR 包是一款用于构建和实现Web服务的重要工具,它是一个开源框架,主要用于简化SOAP和RESTful服务的开发。这个版本的CXF包含了多种组件和服务,旨在提供全面的Web服务支持。在使用CXF 2.1 JAR包时,需要...

    spring boot2.1 webservice

    Spring Boot 2.1 对于Webservice的支持主要通过Spring Web Services(简称Spring WS)模块来实现。Spring WS 是一个完全基于XML的框架,专注于创建SOAP Web服务。它提供了强大的工具,如动态WSDL生成、契约优先的...

    用CXF开发RESTful风格WebService

    开发RESTful风格WebService服务端需要定义资源、开发接口、实现类、配置CXF四个步骤。 3.1 定义资源 定义一个名为UserResource的资源,提供了对User的操作: ```java public class UserResource { @GET @Path(...

    cxf开发webservice实践

    【Apache CXF 开发 WebService ...通过定义服务接口、实现业务逻辑、配置 CXF 和发布服务,你可以轻松地创建一个与外部系统交互的 WebService。同时,CXF 还支持多种协议和格式,使其成为现代企业级应用中的理想选择。

    JAVA的WebService支持-CXF

    下面是一个简单的服务端实现示例,展示了如何使用CXF发布一个WebService: ```java package net.ilkj.soap; import javax.jws.WebMethod; import javax.jws.WebService; import javax.xml.ws.Endpoint; @...

    运用SpringDM和CXF来实现WebService的动态发布

    它实现了JCP与WebService2.1中一些重要标准。CXF简化了构造,集成,面向服务架构(SOA)业务组件与技术的灵活复用。在CXF中,Service使用WSDL标准定义并能够使用各种不同的消息格式(或binding)和网络协议(t

    WebService_CXF学习

    ### WebService_CXF 学习知识点详解 #### 一、WebService 概述 - **定义与作用**:WebService 是一种让程序能够透明地调用互联网上其他程序的技术,无需关心其实现细节。只要 WebService 公开了服务接口,远程...

    cxf与axis2区别

    CXF和Axis2是两个流行的Webservice框架,都是由现有的项目逐渐演化而来的。Axis2是由Axis1.x系列演化而来,而Apache CXF则是由Celtix和XFire项目整合而生。在本文中,我们将探讨CXF和Axis2框架的区别,以帮助开发者...

    WebService的几种不同实现方式

    CXF的核心是org.apache.cxf.Bus,它类似于Spring框架中的ApplicationContext,提供了灵活的插拔式架构。CXF的Bus默认使用SpringBusFactory类创建,并且有一个默认ID为“cxf”的BUS。Apache CXF的出现使得Java Web...

    WebService (一) CXF 入门 HelloWorld

    **WebService (一) CXF 入门 HelloWorld** 在IT行业中,WebService是一种基于开放标准(如XML、WSDL和SOAP)的互联网通信协议,允许不同系统之间的应用程序进行互操作。本篇将详细介绍如何使用Apache CXF框架来创建...

    cxf webservice 应用

    CXF Webservice应用详解 Apache CXF 是一个开源的Java框架,主要用于构建和开发Web服务。它提供了多种方式来创建和消费Web服务,包括基于Java API for Web Services (JAX-WS) 和 Java API for RESTful Web Services...

    WebService_CXF学习.doc

    ### WebService与CXF基础知识详解 #### 一、WebService简介 **WebService** 是一种通过网络提供的服务,允许不同系统之间进行交互。它采用标准的Internet协议(如HTTP、XML、SOAP等),使得不同语言编写的程序能够...

    web server 的 cxf 框架及使用说明

    在Spring配置文件(如`cxf-servlet.xml`)中,配置CXF的前端端点: ```xml &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws=...

    SpringBoot使用CXF集成WebService的方法

    在本文中,我们将深入探讨如何在SpringBoot应用中集成CXF以实现WebService功能。SpringBoot以其简化Spring应用程序的启动和配置而闻名,而CXF是一个开源的Java框架,用于创建和消费SOAP和RESTful Web服务。 ### 1. ...

    apache—CXF学习文档

    2.1 CXF开发例子 - **步骤图**:开发一个CXF Web服务通常包括定义服务接口、实现接口、配置服务、发布服务和调用服务这几个步骤。 - **步骤详解**:首先,定义服务接口,然后编写实现类。接着,创建服务配置文件,如...

    JAVA 的WebService 支持

    在实际开发过程中,Apache CXF是常用的实现JAVA WebService的工具之一。CXF的核心组件是`org.apache.cxf.Bus`,类似于Spring框架中的`ApplicationContext`。`Bus`由`BusFactory`创建,默认情况下使用的是`...

    webservice发布及调用

    CXF 与 Spring 结合使用是当前流行的 WebService 构建方案之一。然而,在某些情况下,可能会遇到 CXF 与特定环境(如 WebSphere 6.1.1)的兼容性问题。这些问题通常出现在特定的 JAR 包上,比如 “wsdl4j-1.6.2.jar...

    webservice开发文档

    本文档将详细介绍如何使用CXF框架实现WebService,并探讨在特定场景下,如何将WebService与应用程序部署在同一容器中(例如Tomcat或JBoss等),以便更好地进行管理和维护。 #### 二、CXF实现WebService CXF是一个...

Global site tag (gtag.js) - Google Analytics