`
Getwaysun
  • 浏览: 32102 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

Apache CXF实战之一 Hello World Web Service转载

 
阅读更多
本文链接:http://blog.csdn.net/kongxx/article/details/7525476

Apache的CXF现在几乎成了Java领域构建Web Service的首选类库,并且它也确实简单易用,下面就通过几篇系列文章做一下简单介绍。

当然首先想到的当然还是那个Hello World示例。这个系列文章中用到的例子都是基于Maven构建的工程,下面是我的pom.xml文件内容

<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/maven-v4_0_0.xsd">  
  <modelVersion>4.0.0</modelVersion>  
  <groupId>com.googlecode.garbagecan.cxfstudy</groupId>  
  <artifactId>cxfstudy</artifactId>  
  <packaging>war</packaging>  
  <version>1.0-SNAPSHOT</version>  
  <name>cxfstudy Maven Webapp</name>  
  <url>http://maven.apache.org</url>  
    
  <properties>  
      <cxf.version>2.2.7</cxf.version>  
  </properties>  
    
  <dependencies>  
      <dependency>  
          <groupId>org.apache.cxf</groupId>  
          <artifactId>cxf-rt-frontend-jaxws</artifactId>  
          <version>${cxf.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.apache.cxf</groupId>  
          <artifactId>cxf-rt-transports-http</artifactId>  
          <version>${cxf.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.apache.cxf</groupId>  
          <artifactId>cxf-rt-transports-http-jetty</artifactId>  
          <version>${cxf.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.apache.cxf</groupId>  
          <artifactId>cxf-rt-ws-security</artifactId>  
          <version>${cxf.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.apache.cxf</groupId>  
          <artifactId>cxf-rt-ws-policy</artifactId>  
          <version>${cxf.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.apache.cxf</groupId>  
          <artifactId>cxf-bundle-jaxrs</artifactId>  
          <version>${cxf.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>javax.ws.rs</groupId>  
          <artifactId>jsr311-api</artifactId>  
          <version>1.1.1</version>  
      </dependency>  
      <dependency>  
          <groupId>org.slf4j</groupId>  
          <artifactId>slf4j-api</artifactId>  
          <version>1.5.8</version>  
      </dependency>  
      <dependency>  
          <groupId>org.slf4j</groupId>  
          <artifactId>slf4j-jdk14</artifactId>  
          <version>1.5.8</version>  
      </dependency>  
      <dependency>  
          <groupId>commons-httpclient</groupId>  
          <artifactId>commons-httpclient</artifactId>  
          <version>3.0</version>  
      </dependency>  
      <dependency>  
          <groupId>commons-io</groupId>  
          <artifactId>commons-io</artifactId>  
          <version>2.3</version>  
      </dependency>  
      <dependency>  
          <groupId>junit</groupId>  
          <artifactId>junit</artifactId>  
          <version>4.8.1</version>  
          <scope>test</scope>  
      </dependency>  
  </dependencies>  
    
  <build>  
      <finalName>cxfstudy</finalName>  
      <resources>  
          <resource>  
              <directory>src/main/resources</directory>  
          </resource>  
          <resource>  
              <directory>src/main/java</directory>  
              <includes>  
                  <include>**</include>  
              </includes>  
              <excludes>  
                  <exclude>**/*.java</exclude>  
              </excludes>  
          </resource>  
      </resources>  
      <plugins>  
          <plugin>  
              <groupId>org.mortbay.jetty</groupId>  
              <artifactId>maven-jetty-plugin</artifactId>  
              <configuration>  
                    <contextPath>/</contextPath>  
                    <connectors>  
                        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">  
                            <port>9000</port>  
                        </connector>  
                    </connectors>  
                </configuration>  
            </plugin>  
            <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-compiler-plugin</artifactId>  
                <configuration>  
                    <source>1.5</source>  
                    <target>1.5</target>  
                </configuration>  
            </plugin>  
        </plugins>  
    </build>  
  
</project>  


下面来看看HelloWorld的具体例子。

1.创建HelloWorld 接口类

package com.googlecode.garbagecan.cxfstudy.helloworld;  
  
import javax.jws.WebMethod;  
import javax.jws.WebParam;  
import javax.jws.WebResult;  
import javax.jws.WebService;  
  
@WebService  
public interface HelloWorld {  
    @WebMethod  
    @WebResult String sayHi(@WebParam String text);  
}  


2.创建HelloWorld实现类

package com.googlecode.garbagecan.cxfstudy.helloworld;  
  
public class HelloWorldImpl implements HelloWorld {  
  
    public String sayHi(String name) {  
        String msg = "Hello " + name + "!";  
        return msg;  
    }  
}  


3.创建Server端测试类

package com.googlecode.garbagecan.cxfstudy.helloworld;  
  
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;  
  
// http://localhost:9000/HelloWorld?wsdl  
public class Server {  
    public static void main(String[] args) throws Exception {  
        JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();  
        factory.setServiceClass(HelloWorldImpl.class);  
          
        factory.setAddress("http://localhost:9000/ws/HelloWorld");  
        factory.create();  
  
        System.out.println("Server start...");  
        Thread.sleep(60 * 1000);  
        System.out.println("Server exit...");  
        System.exit(0);  
    }  
}  


4.创建Client端测试类

package com.googlecode.garbagecan.cxfstudy.helloworld;  
  
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;  
  
public class Client {  
    public static void main(String[] args) {  
        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();  
        factory.setServiceClass(HelloWorld.class);  
        factory.setAddress("http://localhost:9000/ws/HelloWorld");  
        HelloWorld helloworld = (HelloWorld) factory.create();  
        System.out.println(helloworld.sayHi("kongxx"));  
        System.exit(0);  
    }  
}  


5.测试

首先运行Server类来启动Web Service服务,然后访问http://localhost:9000/ws/HelloWorld?wsdl地址来确定web service启动正确。

运行Client测试类,会在命令行输出Hello kongxx!的message。




分享到:
评论

相关推荐

    apache cxf 一个helloworld的例子

    ### Apache CXF HelloWorld 示例详解 #### 一、Apache CXF简介与特点 Apache CXF(以下简称为CXF)是一款非常流行的开源项目,用于构建和服务Web Services。它整合了两个著名的开源项目:Apache Celtix 和 XFire。...

    Apache CXF之helloworld

    这个"Apache CXF之helloworld"示例旨在帮助初学者理解如何使用CXF来创建和消费简单的Web服务。CXF允许开发者通过Java API(如JAX-WS和JAX-RS)来定义服务接口,并自动将其转换为HTTP服务。 首先,我们来了解一下CXF...

    实战Web Service —— 使用Apache CXF开发Web服务的教程

    **实战Web Service与Apache CXF开发** Web服务是一种在互联网上进行通信的标准协议,它允许应用程序之间进行数据交换。Apache CXF是一个开源框架,用于构建和部署Web服务,支持多种Web服务标准,如SOAP、RESTful ...

    apache cxf helloworld小例子

    本示例将引导你了解如何使用Apache CXF创建一个简单的“Hello World”应用程序,涉及客户端和服务端的实现。 首先,让我们从服务端(WS_Server)开始。在CXF中,服务端通常被称为服务提供者。为了创建一个服务,你...

    cxf_helloworld.rar_SOA CXF_SOA JAVA _cxf_cxf helloworld_hellowor

    【标题】"cxf_helloworld.rar" 是一个关于Apache CXF框架入门的示例项目,它专注于SOA(Service-Oriented Architecture,面向服务架构)的实现,特别是使用Java技术。"SOA CXF_SOA JAVA_cxf_cxf helloworld_hello...

    CXF视频:1、使用CXF实现简单的HelloWorld

    【标题】"CXF视频:1、使用CXF实现简单的HelloWorld",这是一段关于Apache CXF框架的初级教程,旨在引导初学者通过实际操作理解如何利用CXF创建一个基本的“HelloWorld”服务。Apache CXF是一个开源的Java框架,它...

    CXF的第一个例子helloWorld

    【标题】"CXF的第一个例子helloWorld"是一个基础教程,主要介绍了如何使用Apache CXF框架创建一个简单的Web服务。Apache CXF是一个开源的Java框架,它用于构建和开发Web服务,支持SOAP、RESTful等多种通信协议。这个...

    Web service之CXF-helloworld DEMO

    在Java世界中,Apache CXF是一个广泛使用的框架,它支持创建和消费Web服务。本篇将深入讲解如何利用Apache CXF实现一个简单的"Hello World" Web服务DEMO。 首先,我们需要了解Web服务的基本概念。Web服务是通过SOAP...

    cxf实用案例代码helloworld

    在这个“cxf实用案例代码helloworld”中,我们将深入探讨如何使用CXF来实现一个简单的 HelloWorld 示例,这对于初学者理解CXF的工作原理非常有帮助。 一、CXF简介 Apache CXF是基于Java的Web服务开发框架,它提供...

    apache-cxf-web-service

    "使用CXF实现简单的HelloWorld.rar"文件很可能是包含一个基础的Apache CXF Web服务示例。在Web服务开发中,"HelloWorld"是经典的入门示例,用于演示基本的服务器端和客户端交互。这个示例将展示如何使用CXF创建一个...

    Apache cxf

    在实际开发中,创建一个简单的Hello World Web Service就像在Java类上添加注解,然后配置CXF来暴露和运行这个服务。在给出的部分内容中,可以看出这个例子是一个基于Maven的Web应用项目,使用了CXF的多个模块,通过...

    Apache CXF部署WebServices实例代码

    Apache CXF是一个开源框架,主要用于构建和开发Web服务。它提供了强大的支持,使得开发者能够轻松地创建、部署和消费Web服务。在这个实例中,我们将深入理解如何使用Apache CXF来部署Web服务,并通过代码实现这一...

    apache-cxf-3.2.4完整版

    Apache CXF是一个开源的Java框架,它主要用于构建和开发Web服务。CXF这个名字来源于两个它合并的项目:Celtix和XFire。这个框架允许开发者使用多种编程模型,包括JAX-WS和JAX-RS,来创建和消费Web服务。在本案例中,...

    cxf 入门(hello world)

    【描述】:这篇文章主要介绍如何使用Apache CXF框架进行Web服务开发,通过一个简单的“Hello World”示例来帮助初学者理解CXF的基本用法。 Apache CXF是一个开源的Java框架,主要用于构建和部署SOAP和RESTful Web...

    WebService (一) CXF 入门 HelloWorld

    本篇将详细介绍如何使用Apache CXF框架来创建和消费一个简单的HelloWorld WebService。 Apache CXF是一个开源的Java框架,它提供了构建和部署Web服务的工具和API。CXF不仅支持SOAP,还支持RESTful服务,使得开发...

    apache-cxf-3.2.1

    Apache CXF是一个强大的开源服务框架,它主要用于构建和开发Web服务。这个框架允许开发者使用多种标准和协议,如SOAP、RESTful HTTP、JMS等,来实现服务接口。CXF这个名字是“CXF”(曾经的XFire)与“Continuations...

    CXF的helloworld实现

    【CXF的helloworld实现】 Apache CXF 是一个开源的Java框架,主要用于构建和开发服务导向架构(SOA)和Web服务。它提供了一个全面的工具集,支持WS-*标准,使得开发人员能够轻松地创建和部署SOAP和RESTful服务。在...

    CXF3.0+Spring3.2 HelloWorld实例

    在本教程中,我们将深入探讨如何使用Apache CXF 3.0与Spring 3.2框架构建一个简单的"Hello World" Web服务实例。这个过程涵盖了关键的技术组件、配置步骤以及可能遇到的问题解决策略。 首先,Apache CXF是一个开源...

    01_CXF之HelloWorld

    标题 "01_CXF之HelloWorld" 暗示了我们即将探讨的是使用Apache CXF框架实现的一个基础的“Hello, World”示例。Apache CXF是一个开源的Java框架,主要用于构建和开发服务导向架构(SOA)和 Representational State ...

Global site tag (gtag.js) - Google Analytics