您的位置:首页 > 编程语言 > Java开发

MyEclipse下XFire开发Webservice实例

2014-06-11 15:13 531 查看
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

            


2)Project Name:WebServiceServer,Framework:XFire,其他选项默认



 3)Next,这一步保持默认值

     4)Project Library选择,选择XFire 1.2  Core Libraries



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



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 Project:WebServiceClient

  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,在控制台中看到如下输出

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  webservice xfire