MyEclipse下XFire开发Webservice实例

MyEclipse下XFire开发Webservice实例 .

   最近在研究JAVA开发Webservice,发现网络上比较流行的几种选择AXIS、XFire、CFX(XFire的下一代),前几天转了几篇关于这三种选择的比较的文章,对它们已经有了些概念。决定自己实践一个例子

     在开始前,先介绍一些概念:

一、WebService简介

1、WebService又是一种高级应用,与之前学习的Struts、Spring、Hibernate等框架不同。WebService是面向服务的架构(SOA),看起来像是比SSH框架要大。那么它到底是做什么用的?什么才是面向服务的架构?

  让我们来看一种需求,集团公司可能具有多种WEB应用。比如,前年开发了个进销存系统、去年开发了一个ERP、今年又开发了一个OA。现在这家集团公司需要将这三个系统整合,难道需要重新编码将它们整合吗?而这三个系统又是用不同语言编写的,这种成本对公司来说无疑是一种浪费。WebService可以很好的解决这种需求。

  WebService是可以进行跨语言、跨平台、分布式系统间整合的方案,WebService像是一条线将这些系统穿起来——企业服务总线(ESB)。WebService使用简单对象访问协议(SOAP)使用http协议传输xml数据(xml是最常用的,也有其他格式数据。)来完成系带间的整合。

  什么是整合?当然是功能和数据的整合,也就是一个系统可以调用另一个系统的WebService接口来完成数据的交互。这样我们就需要知道,提供WebService服务功能的应用公开了哪些接口,我们可以通过WebService描述文档(WSDL)得知。WSDL不需要我们手动编写,Java的WebService实现可以为我们自动生成。JDK1.6新增支持WebService,但还不够成熟。所以我们可以使用一些第三方开源组织提供的WebService组件。

 2、Xfire组件

XFire 是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用。

相对于Axis来说,目前XFire相对受欢迎,加上其提供了和Spring集成的支持,在目前的Web Service开源社区拥有众多的追随者。并且因为XFire为Spring提供的支持,使得我们可以很容易在Spring中使用XFire构建Web Service应用。

XFire 与Axis2相比具有如下特征:

l        支持一系列Web Service的新标准--JSR181、WSDL2.0 、JAXB2、WS-Security等;

l        使用Stax解释XML,性能有了质的提高。XFire采用Woodstox 作Stax实现;

l        容易上手,可以方便快速地从pojo发布服务;

l        灵活的Binding机制,包括默认的Aegis,xmlbeans,jaxb2,castor;

l        高性能的SOAP 栈设计;

l        支持Spring、Pico、Plexus、Loom等容器。

XFire 与Axis1性能的比较如下:

l        XFire 比Axis1.3快2-6倍;

l        XFire 的响应时间是Axis1.3的1/2到1/5。

XFire 在WebService框架中开始较晚,它从现有的框架中借鉴了许多优秀的理念,力争将Web Service的应用开发难度降到最低。此外,还提供了各种绑定技术、支持多种传输协议,对WebService体系中许多新的规范提供了支持。


     XFire Java SOAP框架概述 (摘自:http://tech.it168.com/j/e/2006-10-28/200610281432707.shtml )
    MyEclipse Web Services是建立在XFire Java SOAP框架和工具基础上的, XFire是一款开源的Java SOAP框架。它拥有一个轻量级的信息处理模块,通过STAX来与SOAP信息相结合。提供了一个工作在Web Services下的简单API,支持POJO和schema开发. XFire支持 Web Servicesstandards,Spring 整合, 支持JBI , 支持 JAXB ,XMLBeans,Java 5 和JAX-WS.并支持HTTP, JMS, XMPP, In-memory传输协议


二、创建WebService Project


      1
)在MyEclipse中选择File—>New—>Other,选择WebService Project


            

2Project NameWebServiceServerFrameworkXFire,其他选项默认


 3Next,这一步保持默认值
     4
Project Library选择,选择
XFire 1.2  Core Libraries


 5Finish,创建成功后看到的工程目录如下:




6)完成以上5步后,查看WebRoot/WEB-INF/web.xml,这里指明了当遇到/services/*请求时,将选用XFireConfigurableServlet来处理   



三,创建Web Service Code

    1)通过File—>New—>Other—>WebServices—>Web Service wizard创建JAVA CODE




     2)选择通过JAVACLASS创建Web Service

3)创建HelloWebService.java,通过New创建com.servicepackage,向导将为工程自动创建对应的接口类与实现类



创建成功后查看WebServices/services.xml,发现配置文件多了以下内容:



4)修改HelloWebServiceImpl.java
    
package com.service;
    //Generated by meteorWJ

   public class HelloWebServiceImpl implements IHelloWebService {
    
     public String example(String message) {
        return getAuthor()+","+message;
     }
     private String getAuthor(){
        return "meteorWJ";
     }
    
   }

 

四、部署并测试WebSericeServer

   1)部署WebServiceServer,在部署向导中选择项目、服务器

2)启动服务器

 3)测试WebService
  
MyEclipse
提供了一个WebService Explorer来测试Web Service
  
 
选择列表中的LaunchSOAP Web Services Explorer

4)选择WSDL模式

 

 5)在Explorer中选择WSDLMain,在右边的URL中输入
   http://localhost:8080/WebServiceServer/services/HelloWebService?WSDL
,单击"Go"
      
若成功则Status会提示。

双击examlpe,输入hello,下面会显示out(string):hello,测试通过。




五、创建WebService客户端
经过以上几步,我们已经成功发布了一个WebService,现在需要创建一个客户端来调用该服务
  1
)创建Java ProjectWebServiceClient
  2
)引入MyEclipse Libraries
      
右键
WebServiceClient—>BuildPath—>Add Libraries


选择XFire 1.2 HTTP ClientLibraries



 3)创建HelloWebService.java
   在src目录下创建com.client.HelloWebService.java
   package com.client;

   import java.net.URL;
   import org.codehaus.xfire.client.Client;

   public class HelloWebService {
       public static void main(String[] args)throws Exception
       {
        Client client = new Client(newURL("http://localhost:8080/WebServiceServer/services/HelloWebService?wsdl"));
        Object[] results =client.invoke("example", new Object[] {"hello"});
        System.out.println((String) results[0]);
       }
   }

   4)在确认服务器启动的情况下,运行HelloWebService.java
   右键点击RunAs>Java Application,在控制台中看到如下输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值