`
cuiran
  • 浏览: 82246 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Apache CXF简单WebService例子

阅读更多

源码下载地址: http://dl.dbank.com/c0vhvbrxlr

 

本文来自我的CSDN博客,转载请标明出处:http://blog.csdn.net/cuiran/archive/2010/12/02/6049645.aspx

 

 

一.开发环境

我的开发环境是:

MyEclipse 6.5

Tomcat 6.0

Apache cxf-2.3.0 下载地址: http://www.apache.org/dist/cxf/2.3.0/

二.开发步骤

 

  创建Server


  1. 将下载的cxf-2.3.0 解压。然后在MyEclipse里面添加一个

     User Library名字叫library-cxf-2.3.0  把 lib下的包都添加进去。


  2.新建一个Web工程cxfdemo,并添加library-cxf-2.3.0,然后建个com.demo包。在包里面创建HelloWorld接口

代码如下

view plaincopy to clipboardprint?
/** 
 * HelloWorld.java 
 * 版权所有(C) 2010 cuiran2001@163.com 
 * 创建:崔冉  Dec 2, 2010 9:47:44 AM 
 */ 
package com.demo;  
 
import javax.jws.WebService;  
 
/** 
 * @author 崔冉 
 * @version 1.0.0 
 * @desc 接口HelloWorld 
 */ 
@WebService 
public interface HelloWorld {  
    String sayHi(String text);  

/**
 * HelloWorld.java
 * 版权所有(C) 2010 cuiran2001@163.com
 * 创建:崔冉  Dec 2, 2010 9:47:44 AM
 */
package com.demo;

import javax.jws.WebService;

/**
 * @author 崔冉
 * @version 1.0.0
 * @desc 接口HelloWorld
 */
@WebService
public interface HelloWorld {
 String sayHi(String text);
}
 

再创建一个类实现HelloWorld接口

view plaincopy to clipboardprint?
/** 
 * HelloWorldImpl.java 
 * 版权所有(C) 2010 cuiran2001@163.com 
 * 创建:崔冉  Dec 2, 2010 9:49:17 AM 
 */ 
package com.demo;  
 
import javax.jws.WebService;  
 
/** 
 * @author 崔冉 
 * @version 1.0.0 
 * @desc 实现HelloWorld接口 
 */ 
@WebService 
public class HelloWorldImpl implements HelloWorld {  
 
    /** 
     *  
     */ 
    public String sayHi(String text) {  
          
        return "Hi,"+text;  
    }  
 

/**
 * HelloWorldImpl.java
 * 版权所有(C) 2010 cuiran2001@163.com
 * 创建:崔冉  Dec 2, 2010 9:49:17 AM
 */
package com.demo;

import javax.jws.WebService;

/**
 * @author 崔冉
 * @version 1.0.0
 * @desc 实现HelloWorld接口
 */
@WebService
public class HelloWorldImpl implements HelloWorld {

 /**
  *
  */
 public String sayHi(String text) {
  
  return "Hi,"+text;
 }

}
 

然后修改web.xml里面内容

view plaincopy to clipboardprint?
<?xml version="1.0" encoding="UTF-8"?> 
<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>/*</url-pattern> 
    </servlet-mapping> 
 
</web-app> 
<?xml version="1.0" encoding="UTF-8"?>
<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>/*</url-pattern>
    </servlet-mapping>

</web-app>
 

在WEB-INF下面创建一个beans.xml

代码如下

view plaincopy to clipboardprint?
<?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.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:endpoint id="helloWorld" implementor="com.demo.HelloWorldImpl" address="/HelloWorld" /> 
</beans> 
<?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.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:endpoint id="helloWorld" implementor="com.demo.HelloWorldImpl" address="/HelloWorld" />
</beans>

 

将Web工程发布到Tomcat里面,然后启动Server


 

  创建Client


  接着创建客户端,在com.demo下面创建client-beans.xml。内容如下


view plaincopy to clipboardprint?
<?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.xsd  
http://cxf.apache.org/jaxws http://cxf.apache.org/schema/jaxws.xsd"> 
 
    <bean id="client" class="com.demo.HelloWorld" 
        factory-bean="clientFactory" factory-method="create" /> 
 
    <bean id="clientFactory" 
        class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> 
        <property name="serviceClass" value="com.demo.HelloWorld" /> 
        <property name="address" value="http://127.0.0.1:8080/cxfdemo/HelloWorld" /> 
    </bean> 
 
</beans> 
<?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.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schema/jaxws.xsd">

    <bean id="client" class="com.demo.HelloWorld"
        factory-bean="clientFactory" factory-method="create" />

    <bean id="clientFactory"
        class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
        <property name="serviceClass" value="com.demo.HelloWorld" />
        <property name="address" value="http://127.0.0.1:8080/cxfdemo/HelloWorld" />
    </bean>

</beans>

 

在创建测试类Client.java

view plaincopy to clipboardprint?
/** 
 * Client.java 
 * 版权所有(C) 2010 cuiran2001@163.com 
 * 创建:崔冉  Dec 2, 2010 9:53:30 AM 
 */ 
package com.demo;  
 
import org.springframework.context.ApplicationContext;  
import org.springframework.context.support.ClassPathXmlApplicationContext;  
 
/** 
 * @author 崔冉 
 * @version 1.0.0 
 * @desc 测试类 
 */ 
public class Client {  
      public static Client self = new Client();  
      private HelloWorld client = null;  
        
     private Client() {  
            // START SNIPPET: client  
            ApplicationContext context = new ClassPathXmlApplicationContext(  
                    new String[]{"com/demo/client-beans.xml"});  
            client = (HelloWorld) context.getBean("client");  
        }  
        
 
        public HelloWorld getServer() {  
              
            return client;  
              
        }  
 
        public String getText(String text) throws Exception {  
            String response = getServer().sayHi(text);  
            return response;  
        }  
 
 
    /** 
     * @param args 
     */ 
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        try {  
              
            System.out.println(self.getText("cuiran"));  
        } catch (Exception e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
          
    }  
 

/**
 * Client.java
 * 版权所有(C) 2010 cuiran2001@163.com
 * 创建:崔冉  Dec 2, 2010 9:53:30 AM
 */
package com.demo;

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

/**
 * @author 崔冉
 * @version 1.0.0
 * @desc 测试类
 */
public class Client {
   public static Client self = new Client();
   private HelloWorld client = null;
  
  private Client() {
         // START SNIPPET: client
         ApplicationContext context = new ClassPathXmlApplicationContext(
                 new String[]{"com/demo/client-beans.xml"});
         client = (HelloWorld) context.getBean("client");
     }
  

     public HelloWorld getServer() {
      
         return client;
        
     }

     public String getText(String text) throws Exception {
         String response = getServer().sayHi(text);
         return response;
     }


 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  try {
   
   System.out.println(self.getText("cuiran"));
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
 }

}
 

 

    然后进行测试运行。如果遇到类似这种错误“AXB 2.1 API is being loaded from the bootstrap classloader” 说明你的web工程添加了J2EE 1.4或者是1.5 library. 这样就与jaxb-api-2.2.1.jar

  冲突了,只需删除即可。

最后运行如图

 

 

源码下载地址: http://dl.dbank.com/c0vhvbrxlr

 

本文来自我的CSDN博客,转载请标明出处:http://blog.csdn.net/cuiran/archive/2010/12/02/6049645.aspx

分享到:
评论

相关推荐

    webService(基于cxf)的完整例子

    1. **CXF框架介绍**:CXF,全称为"Code first eXtended Framework",最初由XFire项目发展而来,后与Apache Axiom和Neethi等项目合并。CXF提供了一种从代码直接生成Web服务的方式,支持JAX-WS和JAX-RS标准,使得开发...

    camel-cxf调用和发布webservice例子

    用camel-cxf调用webservice和发布一个webservice接口例子,首先启动QueryServiceMain主函数启动webservice接口,然后启动测试类TestWebservice。例子主要是实现java代码实现camel调用webservice接口

    cxf webService简单例子

    【标题】"cxf webService简单例子"是一个关于使用Apache CXF框架创建和消费Web服务的基础教程。Apache CXF是一个开源的Java框架,它允许开发者创建和实现符合各种Web服务标准(如SOAP、RESTful)的服务。这个例子将...

    springboot整合CXF发布webservice和客户端调用

    Apache CXF是一个开源的Web服务框架,支持SOAP、RESTful等不同风格的服务。它允许开发者以Java注解或XML方式定义服务接口,并提供了丰富的客户端和服务端工具。 3. **整合过程** - 首先,我们需要在`pom.xml`中...

    cxf webservice简单例子 服务端 客户端

    本教程将基于CXF构建一个简单的Web服务,包括服务端和客户端的实现。我们将使用CXF提供的工具和服务接口来创建服务,然后通过客户端调用来验证服务的正确性。 ### 1. CXF简介 CXF是Apache软件基金会的一个项目,它...

    使用 CXF 做 webservice 简单例子

    Apache CXF 是一款开源的框架,专门用于构建和开发高质量、高性能的 Web 服务。它提供了丰富的工具和支持,包括对 SOAP、RESTful API、WS-* 规范的全面支持,以及与 Java EE 和 Spring 框架的紧密集成。通过 CXF,...

    cxf webservice例子

    【标题】:“CXF Webservice例子” 【描述】:在IT行业中,Apache CXF是一个流行的开源框架,用于创建和消费Web服务。这个“cxf webservice例子”是开发者花费了一段时间研究并整理出的示例,旨在帮助学习者更好地...

    webservice天气预报例子cxf实例

    在本例中,“webservice天气预报例子cxf实例”指的是使用Apache CXF框架实现的一个天气预报相关的Web服务示例。 Apache CXF是一个开源框架,它为开发和部署Web服务提供了全面的支持。CXF允许开发者通过Java编程模型...

    使用 CXF 做 webservice 简单例子 - 烽火编程 - 博客园

    Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构。它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻量级容器中,以及部署在更高级的...

    源码-springboot+cxf实现webservice服务端

    在Java领域中,Apache CXF因其强大的功能和广泛的兼容性成为了构建WebService的首选框架之一。本文将通过具体的源码示例,详细介绍如何在Spring Boot环境中使用CXF来搭建一个简单的WebService服务端。 #### 二、...

    Spring+CXF开发WebService

    使用 CXF 做 webservice 简单例子 Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构。它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻...

    CXF3.0.9+SPRING开发webservice例子

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

    Apache cxf

    在给出的部分内容中,可以看出这个例子是一个基于Maven的Web应用项目,使用了CXF的多个模块,通过Maven的依赖管理来确保所有必要的组件都被正确引入。 总结起来,Apache CXF 是Java Web服务开发的重要工具,它简化...

    webservice cxf 整合spring例子源代码

    在Web服务开发中,Apache CXF是一个广泛使用的开源框架,它提供了创建、部署和管理Web服务的强大功能。CXF不仅支持SOAP,还支持RESTful API,使得开发者能够灵活地选择适合项目需求的服务模型。同时,Spring框架作为...

    cxf 实现的webservice例子demo

    【CXF实现的Web服务(WebService)例子Demo详解】 Apache CXF是一个开源的Java框架,主要用于构建和开发服务导向架构(SOA)的应用程序。它提供了丰富的API和工具,使得开发者能够轻松地创建和部署Web服务。CXF支持...

    CXF webservice Demo

    总的来说,"CXF Webservice Demo"是一个学习和实践使用Apache CXF创建和使用SOAP Web服务的好例子。它涵盖了从服务定义、实现到客户端调用的整个流程,对于理解和掌握CXF框架的功能和用法非常有帮助。通过这个示例,...

    较完整的webservice例子

    【标题】:“较完整的Webservice例子” 在IT领域,Web Service是一种基于开放标准(如XML、WSDL和SOAP)的,使得不同系统间能够通过网络进行互操作的技术。本资源提供了一个较为完整的Webservice实现案例,它可以...

    使用CXF开发WebService简单实例

    Apache CXF是一个开源框架,专门用于构建和消费Web服务。本篇文章将深入探讨如何使用CXF来开发一个简单的“HelloWorld”Web服务实例。 首先,我们需要了解CXF的基本概念。CXF全称为CXF CXF (CXF on XFire),它整合...

    CXF实现webservice

    【CXF实现Web服务详解】 Web服务是一种通过网络进行通信的软件系统,它允许...通过阅读提供的“开发基于CXF的RESTFul Webservice.txt”文档和使用“apache-cxf-2.4.2.zip”中的库,你可以深入了解并实践CXF的使用。

    cxf-demo 比较实用的webservice例子

    【标题】"cxf-demo 比较实用的webservice例子"揭示了这是一个关于Apache CXF框架的示例项目,用于演示如何创建和使用Web服务。Apache CXF是一个开源的Java框架,它允许开发者构建和消费各种Web服务,包括SOAP和...

Global site tag (gtag.js) - Google Analytics