`
wake.up
  • 浏览: 13800 次
社区版块
存档分类
最新评论

Apache CXF实战之一 Hello World Web Service

    博客分类:
  • cxf
阅读更多

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

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

 

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
  3.     <modelVersion>4.0.0</modelVersion>  
  4.     <groupId>com.googlecode.garbagecan.cxfstudy</groupId>  
  5.     <artifactId>cxfstudy</artifactId>  
  6.     <packaging>war</packaging>  
  7.     <version>1.0-SNAPSHOT</version>  
  8.     <name>cxfstudy Maven Webapp</name>  
  9.     <url>http://maven.apache.org</url>  
  10.       
  11.     <properties>  
  12.         <cxf.version>2.2.7</cxf.version>  
  13.     </properties>  
  14.       
  15.     <dependencies>  
  16.         <dependency>  
  17.             <groupId>org.apache.cxf</groupId>  
  18.             <artifactId>cxf-rt-frontend-jaxws</artifactId>  
  19.             <version>${cxf.version}</version>  
  20.         </dependency>  
  21.         <dependency>  
  22.             <groupId>org.apache.cxf</groupId>  
  23.             <artifactId>cxf-rt-transports-http</artifactId>  
  24.             <version>${cxf.version}</version>  
  25.         </dependency>  
  26.         <dependency>  
  27.             <groupId>org.apache.cxf</groupId>  
  28.             <artifactId>cxf-rt-transports-http-jetty</artifactId>  
  29.             <version>${cxf.version}</version>  
  30.         </dependency>  
  31.         <dependency>  
  32.             <groupId>org.apache.cxf</groupId>  
  33.             <artifactId>cxf-rt-ws-security</artifactId>  
  34.             <version>${cxf.version}</version>  
  35.         </dependency>  
  36.         <dependency>  
  37.             <groupId>org.apache.cxf</groupId>  
  38.             <artifactId>cxf-rt-ws-policy</artifactId>  
  39.             <version>${cxf.version}</version>  
  40.         </dependency>  
  41.         <dependency>  
  42.             <groupId>org.apache.cxf</groupId>  
  43.             <artifactId>cxf-bundle-jaxrs</artifactId>  
  44.             <version>${cxf.version}</version>  
  45.         </dependency>  
  46.         <dependency>  
  47.             <groupId>javax.ws.rs</groupId>  
  48.             <artifactId>jsr311-api</artifactId>  
  49.             <version>1.1.1</version>  
  50.         </dependency>  
  51.         <dependency>  
  52.             <groupId>org.slf4j</groupId>  
  53.             <artifactId>slf4j-api</artifactId>  
  54.             <version>1.5.8</version>  
  55.         </dependency>  
  56.         <dependency>  
  57.             <groupId>org.slf4j</groupId>  
  58.             <artifactId>slf4j-jdk14</artifactId>  
  59.             <version>1.5.8</version>  
  60.         </dependency>  
  61.         <dependency>  
  62.             <groupId>commons-httpclient</groupId>  
  63.             <artifactId>commons-httpclient</artifactId>  
  64.             <version>3.0</version>  
  65.         </dependency>  
  66.         <dependency>  
  67.             <groupId>commons-io</groupId>  
  68.             <artifactId>commons-io</artifactId>  
  69.             <version>2.3</version>  
  70.         </dependency>  
  71.         <dependency>  
  72.             <groupId>junit</groupId>  
  73.             <artifactId>junit</artifactId>  
  74.             <version>4.8.1</version>  
  75.             <scope>test</scope>  
  76.         </dependency>  
  77.     </dependencies>  
  78.       
  79.     <build>  
  80.         <finalName>cxfstudy</finalName>  
  81.         <resources>  
  82.             <resource>  
  83.                 <directory>src/main/resources</directory>  
  84.             </resource>  
  85.             <resource>  
  86.                 <directory>src/main/java</directory>  
  87.                 <includes>  
  88.                     <include>**</include>  
  89.                 </includes>  
  90.                 <excludes>  
  91.                     <exclude>**/*.java</exclude>  
  92.                 </excludes>  
  93.             </resource>  
  94.         </resources>  
  95.         <plugins>  
  96.             <plugin>  
  97.                 <groupId>org.mortbay.jetty</groupId>  
  98.                 <artifactId>maven-jetty-plugin</artifactId>  
  99.                 <configuration>  
  100.                     <contextPath>/</contextPath>  
  101.                     <connectors>  
  102.                         <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">  
  103.                             <port>9000</port>  
  104.                         </connector>  
  105.                     </connectors>  
  106.                 </configuration>  
  107.             </plugin>  
  108.             <plugin>  
  109.                 <groupId>org.apache.maven.plugins</groupId>  
  110.                 <artifactId>maven-compiler-plugin</artifactId>  
  111.                 <configuration>  
  112.                     <source>1.5</source>  
  113.                     <target>1.5</target>  
  114.                 </configuration>  
  115.             </plugin>  
  116.         </plugins>  
  117.     </build>  
  118.   
  119. </project>  

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

 

1.创建HelloWorld 接口类

 

  1. package com.googlecode.garbagecan.cxfstudy.helloworld;  
  2.   
  3. import javax.jws.WebMethod;  
  4. import javax.jws.WebParam;  
  5. import javax.jws.WebResult;  
  6. import javax.jws.WebService;  
  7.   
  8. @WebService  
  9. public interface HelloWorld {  
  10.     @WebMethod  
  11.     @WebResult String sayHi(@WebParam String text);  
  12. }  

2.创建HelloWorld实现类 

 

 

  1. package com.googlecode.garbagecan.cxfstudy.helloworld;  
  2.   
  3. public class HelloWorldImpl implements HelloWorld {  
  4.   
  5.     public String sayHi(String name) {  
  6.         String msg = "Hello " + name + "!";  
  7.         return msg;  
  8.     }  
  9. }  

3.创建Server端测试类

 

 

  1. package com.googlecode.garbagecan.cxfstudy.helloworld;  
  2.   
  3. import org.apache.cxf.jaxws.JaxWsServerFactoryBean;  
  4.   
  5. // http://localhost:9000/HelloWorld?wsdl  
  6. public class Server {  
  7.     public static void main(String[] args) throws Exception {  
  8.         JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();  
  9.         factory.setServiceClass(HelloWorldImpl.class);  
  10.           
  11.         factory.setAddress("http://localhost:9000/ws/HelloWorld");  
  12.         factory.create();  
  13.   
  14.         System.out.println("Server start...");  
  15.         Thread.sleep(60 * 1000);  
  16.         System.out.println("Server exit...");  
  17.         System.exit(0);  
  18.     }  
  19. }  

4.创建Client端测试类

 

 

  1. package com.googlecode.garbagecan.cxfstudy.helloworld;  
  2.   
  3. import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;  
  4.   
  5. public class Client {  
  6.     public static void main(String[] args) {  
  7.         JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();  
  8.         factory.setServiceClass(HelloWorld.class);  
  9.         factory.setAddress("http://localhost:9000/ws/HelloWorld");  
  10.         HelloWorld helloworld = (HelloWorld) factory.create();  
  11.         System.out.println(helloworld.sayHi("xx"));  
  12.         System.exit(0);  
  13.     }  
  14. }  

5.测试

 

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

运行Client测试类,会在命令行输出Hello xx!的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