`
baobeituping
  • 浏览: 1070434 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

XFire 开发webservice的全过程

阅读更多

概述

XFire是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用。XFixe内建在STAX的基础上之上,STAX是基于流的XML解析引擎,这使得XFire拥有很高的性能。

相对Axis来说,目前它的人气指数相当高,加上其提供了和String集成的支持,在目前的Web Service开源社区拥有众多的追随者,XFire被多个开源项目所使用。XFire为Spring提供了支持,这使得我们可以很容易在Spring中使用XFire构建Web Service应用。本文讲述了如何使用XFire在Spring中开发Web Service的具体过程。

XFire特性

XFire是Web Service框架的后起之秀,它从现有的框架中借鉴了许多优秀的理念,力争将Web Service的应用开发难度降到最低。此外,还提供了各种绑定技术、支持多种传输协议,对Web Service体系中许多新的规范提供了支持。简单来说,它具有以下一些特性:

  • 支持重要的Web Service规范,如SOAP、WSDL、WS-I Basic Profile,、WS-Addressing、WS-Security等;
  • 高性能的SOAP 栈设计;
  • 可插拔的绑定,支持POJO、XMLBeans、JAXB1.1、JAXB2以及Castor;
  • 支持JSR 181规范,该规范通过JDK 5.0注解将POJO导出为Web Service;
  • 支持多种传输协议:HTTP、JMS、XMPP、In-JVM等,其中In-JVM允许我们在不启动Web应用器的情况下,象一般的程序一样测试Web Service应用;
  • 易用的API,XFire API简洁明了,便于使用;
  • 支持Spring、Pico、Plexus、Loom等容器;
  • 支持JBI(Java Business Integration:Java 业务整合)规范,JBI是JSR 208的实现;
  • 能够根据WSDL创建客户端和服务器端的存根代码;
  • 率先对JAX-WS提供了支持,JAX-WS是JAX-RPC的替代者。

XFire 体系及重要API

ServiceFactory

ServiceFactory是XFire的核心类,它可以将一个POJO生成为一个Web Service。让我们通过一个最简单的例子了解ServiceFactory的用途,假设我们在一个POJO中定义了一个业务,现在希望将其导出为 Web Service,通过ServiceFactory可以轻而易举地达到目的:

XFire xfire = XFireFactory.newInstance().getXFire();

ServiceFactory factory = new ObjectServiceFactory(xfire.getTransportManager(), null);

Service service = factory.create(YourService.class);

这样我们就为YourService类创建基于SOAP 1.1封装的Web Service。Service的输入输出参数如果为简单类型的对象(由String、int、long等基本类型组成),无须进行额外的映射设置,对于复杂类型的输入输出Service,XFire将会自动尝试将其序列化(通过Aegis绑定)。紧接着,你就可以注册这个Service。

xfire.getServiceRegistry().register(service);

XFire推荐通过一个接口开放服务,此时,你可以指定一个具体的实现类:

service.setProperty(ObjectInvoker.SERVICE_IMPL_CLASS, YourServiceImpl.class);

1.下载XFire所需要的包

2.建立服务端程序

建立一个名字为XFire的Web工程,导入ECLIPSE中自带的XFire的包,在classes的目录下建立META-INF/xfire/services.xml,修改web.xml文件。service.xml文件和web.xml文件的具体配置如下:

services.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">

 <service>
  <name>AccountService</name>
  <namespace>http://test/AccountService</namespace>
  <serviceClass>com.jobcn.AccountService</serviceClass>
  <implementationClass>com.jobcn.AccountServiceImpl</implementationClass>
 </service>

</beans>

namespace:这个名字可以随意定义,但必须唯一;

serviceClass:表示接口类;

implementationClass:表示实现接口的类;

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
 xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 
  <servlet>
         <servlet-name>XFireServlet</servlet-name>
         <servlet-class>
            org.codehaus.xfire.transport.http.XFireConfigurableServlet
        </servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>XFireServlet</servlet-name>
        <url-pattern>/servlet/XFireServlet/*</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>XFireServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>

<!--这个services以后要和你URL中的对应,注意这点,然后在下文中有介绍-->
    </servlet-mapping>
 
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
开发完成后,部署到web服务器上,我用的是TOMCAT;

服务器开启后,输入的格式http://localhost:8080/部署的服务名/services/AccountService?wsdl

该URL组成是基本的服务器访问路径+部署的服务名(我的工程名是XFire)+url-pattern的名字(该名字就是上文提到的services)对应+services.xml文件中的name值(我的是AccountService)+?+wsdl

如果你在浏览器中看到的是一个XML形式的文件,那就表示你的WEBSERVICE服务发布成功了;

然后你将这个内容全部保存成一个以WSDL结尾的文件,保存到你本地的一个文件目录中,例如我保存在D:/accountservice.wsdl(对该文件你还要做相应的处理,因为从浏览器保存下来的文件中包含'-'等多余的字符,自己处理);

服务端服务代码:

接口类:

package com.jobcn;

public interface AccountService {
 
 int getTotal(int a,int b);

}
实现类:

package com.jobcn;

public class AccountServiceImpl implements AccountService {

 public int getTotal(int a, int b) {
  // TODO Auto-generated method stub
  return a+b;
 }

}

客户端处理:

在EXCLIPSE中集成XFIRE插件,我们可以通过该插件来解析来自服务器端的wsdl文件,吧他还原成我们可以调用的类(该类只是服务器端的一个stub类)。插件的配置如下:

安装Eclipse XFire 插件

1.Help->Software Updates->Find and Install...

2.选择“Search for new features to install”,并点击Next;

3.选择“New Remote Site...”,创建一个Name为XFire,URL为

http://dist.codehaus.org/xfire/update/的网站;

4.点击Finish安装XFire插件。

使用插件创建客户端代码存根

  • File->New->Other...->XFire->Code generation from WSDL document;
  • 弹出一个对话框,如图3所示:

3创建客户端代码存根

指定WSDL文件的位置,存根代码的输出地址及对应的类包,点击Finish。

  • XFire插件将在生成客户端代码存根的同时生成服务端代码的存根,如下图所示:

 

图4生成的代码

 

AccountServiceClient是 AccountServicePortType的工厂类,它提供了若干个获取AccountServicePortType实例的重载方法。 AccountServicePortType对应服务端的窄接口AccountService类。而AccountServiceImpl是服务端的存根代码,在META-INF中还有XFire的服务配置文件。对于客户端来说,一般不需要服务端的代码,所以你可以将AccountServiceImpl和META-INF删除。

,配置得到了服务器端的JAVA的STUB类以后,我们来写客户端的程序:

package com.test;

import test.accountservice.AccountServiceClient;
import test.accountservice.AccountServicePortType;

public class Client {

 /**
  * @param args
  */
 private static String url = "http://127.0.0.1:8080/XFire/services/AccountService";
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  AccountServiceClient asc = new AccountServiceClient();
  AccountServicePortType ast = asc.getAccountServiceHttpPort(url);
  System.out.println(ast.getTotal(2, 3));//结果打出“5”

 }

}

调用成功!

分享到:
评论

相关推荐

    xfire开发webservice接口开发(带有软件包)

    压缩包中的"xfire开发webservice及jar包"很可能包含了所有必要的库文件,如xfire-core、xfire-aegis等。 2. **创建Web Service**: 使用Xfire,你可以通过编写简单的Java类来定义服务接口和实现。Xfire会自动处理...

    xfire构建WebService例子

    通过以上步骤,我们就完成了使用XFire构建一个简单的Web服务的全过程,包括服务端的创建和客户端的消费。这种方式让开发者能够快速地将业务逻辑封装为Web服务,实现不同系统间的互操作性。虽然XFire已经被更现代化的...

    xfire发布webservice

    这个文件是XFire框架的核心配置之一,它定义了服务的名称、服务类的全限定名等关键信息。在本例中,服务名称被定义为`guolai`,而服务类则指向了之前编写的`Xfire`类。 #### 3. 测试服务 完成以上步骤后,可以通过...

    用xfire开发webservice实例(原稿)

    【标题】"用xfire开发webservice实例(原稿)"所涉及的知识点主要集中在使用XFire框架创建和实现Web服务的实践中。XFire是Apache CXF的前身,它是一个轻量级的Java Web服务框架,允许开发者快速地构建和部署SOAP服务。...

    XFire开发webservice服务和客户端全攻略.docx

    【XFire开发Web Service服务和客户端全攻略】 XFire是一个高度活跃且受欢迎的Web Service框架,与Axis2并列为新一代的Web Service实现。它提供了一套简洁的API,支持Web Service的各种标准协议,如JSR181、WSDL2.0...

    使用Xfire构建JAVA的webService全过程(从服务端到客户端)

    Java平台提供了多种实现Web服务的方法,其中Xfire是一个流行的框架,它简化了构建和使用Web服务的过程。本文将深入探讨如何使用Xfire来创建一个完整的JAVA Web服务,包括服务端和客户端的实现。 首先,Xfire是一个...

    XFire令WebService如此简单

    【XFire:让WebService开发变得简单】 XFire是一款强大的Java Web Service框架,它极大地简化了创建和使用Web服务的过程。通过XFire,开发者可以轻松地将普通的Java接口转换为符合WS-I标准的Web服务,无需复杂的...

    使用xfire+spring构建webservice

    总的来说,这篇教程应该涵盖了从创建服务到发布的全过程,通过具体的代码示例帮助读者掌握使用XFire和Spring构建Web服务的方法。对于希望了解Web服务开发或者想在Spring应用中添加Web服务功能的开发者来说,这是一个...

    axis+xFire+cfx全方位介绍webservice

    xFire是一款已不再维护但曾经流行的Web服务客户端工具,主要用于简化Web服务的开发和测试过程。它作为一个插件集成到IDE(如NetBeans或Eclipse)中,使得开发者可以通过图形用户界面快速地调试和测试Web服务。虽然...

    xfire https

    描述中的“jar包齐全可直接导入eclipse进行二次开发”意味着提供的压缩包包含了运行和开发Xfire项目所需的全部依赖库,可以直接导入Eclipse这样的集成开发环境(IDE)中,便于开发者进行快速的二次开发工作。...

    webservice开发实例

    这个过程不仅涵盖了从环境搭建到服务开发的全过程,还展示了如何通过MyEclipse和Tomcat进行项目管理和部署测试。对于初学者而言,这是一个很好的起点,帮助理解Web服务的基本概念和开发流程。 然而,随着技术的发展...

    第十五章 开发XFire Web Service应用22.pdf

    本节将指导开发者通过MyEclipse创建一个基础的WebService项目,以“HelloWorldService”为例,展示从项目搭建到服务发布的全过程。首先,在MyEclipse中新建项目,选择Web Service项目类型,设置项目名称、位置和其他...

    JavaWebServiceDemo(XFire)

    Java WebService Demo(XFire)是一个基于XFire框架的示例项目,它展示了...这个Demo项目是学习Java Web服务开发的一个宝贵资源,它涵盖了从创建服务到测试的全过程,有助于开发者理解和掌握Web服务的基本概念和实践。

    myeclipse webservice xfire例子,有图全程讲解,有源码

    以上就是使用MyEclipse和XFire创建Web服务的全过程。这个示例涵盖了从定义服务接口到实现、发布和调用的整个流程,提供了源码和图解,非常适合初学者理解和实践。通过这种方式,你可以轻松地将Java对象暴露为Web服务...

    WebService例子.zip

    这些代码可以帮助初学者理解WebService的整个生命周期,从服务创建、部署到客户端调用的全过程。 8. **不使用XFire和CXF**: XFire和CXF都是流行的Java WebService框架,它们提供了更高级的功能,如支持WS-Security...

    使用CXF开发WebService简单实例

    至此,我们已经完成了使用CXF开发简单“HelloWorld”Web服务的全过程。这个实例展示了CXF如何简化Web服务的开发,使得我们可以快速地创建服务并进行调用。通过理解这个基础实例,开发者可以进一步探索CXF的高级特性...

    spring3.1+xfire1.26

    Spring 是一个全面的后端开发框架,提供了依赖注入、面向切面编程、事务管理等功能,而 XFire 是一个基于Java的Web服务实现库,它简化了创建和消费Web服务的过程。 在"spring3.1+xfire1.26 全注解"这个项目中,...

    MyEclipse下通过Xfire实现Web服务发布的注意事项

    Xfire是一个轻量级的Java Web服务框架,它简化了服务的创建和部署过程。 首先,确保你的开发环境准备就绪。安装Java Development Kit (JDK),推荐版本为1.6,最好选择全英文路径以避免潜在问题。接着,安装...

    WebService服务器端程序

    综上所述,"WebService服务器端程序"是一个涵盖了CXF与Spring集成的Web服务开发项目,涉及到从接口设计、服务实现、配置管理到客户端调用的全过程。学习和理解这些知识点,对于开发高质量、可维护的Web服务至关重要...

Global site tag (gtag.js) - Google Analytics