`
superallen
  • 浏览: 141536 次
  • 来自: ...
社区版块
存档分类

XFire令WebService如此简单

阅读更多
 

运行环境:JBOXX 4.04 、 Tomcat <st1:chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">5.3.9</st1:chsdate>

开发工具:Eclipse3.1 + MyEclipse 4.0

 

1.       利用xFire发布WebService<o:p></o:p>

对于一般的接口方法,即方法的返回类型或参数不是ListMap中存放对象的方法,则只需要两步简单的配置即可。

一、配置web.xml

添加一个servlet

xml 代码
  1. <servlet>  
  2.         <servlet-name>webservice</servlet-name>  
  3.         <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>  
  4.     </servlet>  
  5.   
  6.     <servlet-mapping>  
  7.         <servlet-name>webservice</servlet-name>  
  8.         <url-pattern>/servlet/XFireServlet/*</url-pattern>  
  9.     </servlet-mapping>  
  10.     <servlet-mapping>  
  11.         <servlet-name>webservice</servlet-name>  
  12.         <url-pattern>/services/*</url-pattern>  
  13. </servlet-mapping>  

 

 

一、建立services.xml

  在源代码包src(也可能是其它的名称)下建立META-INF/xfire文件夹,并在下面建立services.xml文件。

xml 代码
  1. <!-- START SNIPPET: services -->  
  2. <beans  xmlns="http://xfire.codehaus.org/config/1.0">  
  3.   <service >  
  4.     <name>helloWorld</name>  
  5.     <namespace>http://6.1.8.16:8080/xfireWebService/services/helloWorld</namespace>  
  6.     <serviceClass>com.excellence.webservice.test.helloWorld</serviceClass>  
  7.     <implementationClass>com.excellence.webservice.test.HelloWorldImpl</implementationClass>  
  8.   </service>  
  9. </beans>  
  10. <!-- END SNIPPET: services -->  

 

 

一 name 元素:表示该webService的名称<o:p></o:p>

二 namespace 元素:表示该webService的命名空间<o:p></o:p>

三 serviceClass 元素:表示该webService的接口<o:p></o:p>

四 implementationClass 元素:表示该webService的实现类<o:p></o:p>

  <o:p></o:p>

对!就是这么简单,就可以啦。

  <o:p></o:p>

如果返回类型是ListMap,并且里面存放的是自定义类的话,则需要增加一个对于服务接口的配置文件。该文件的命名规则是 接口文件名.aegis.xml。例如接口是HelloWorld.java的话,则此配置文件命名为HelloWorld.aegis.xml<o:p></o:p>

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <mappings>  
  3.   <mapping >  
  4.     <method name="getUsers">  
  5.       <return-type componentType="com.excellence.webservice.test.User"/>  
  6.     </method>  
  7.   </mapping>  
  8. </mappings>  

 

getUsers方法返回类型是List,里面装的User对象。对于这种类型的方法,在配置文件中描述了它的返回值类型。<o:p></o:p>

如果返回的类型是Map的话,做法和List一样。但定义的类型,是Map中的Value部分,并且这样的话,MapValue所存放的对象就必须全部是同一种类啦。<o:p></o:p>

 

分享到:
评论
10 楼 yhb_4323 2007-07-03  
我在做项目中,加入Spring 2.0就报错,xFire自己带的Spring是1.2.6。
我现在没有环境,所以没有发错误信息。
大家知道怎么解决吗?
9 楼 wq_pro 2007-07-03  
如果你写的服务返回List,可以利用myeclipse自动生成客户端代码
8 楼 godson_2003 2007-05-11  
能举个复杂例子么?如返回List类型 远程调用怎么做?
7 楼 lxz8157 2007-05-11  
wangwenpinghello 写道
大家都用过,我想请教一个问题,怎么使用xfire客户端来调用远程的xfire  WebService啊,最好有个例子


/**
 * 版权信息:
 * 文件编号:TestCallWebService.java
 * 文件名称:
 * 系统编号:
 * 系统名称:
 * 设计作者:
 * 完成日期:2006-11-3
 * 设计文档:
 * 内容摘要:
 * 
 * 修改记录1:
 * 修改日期:
 * 修 改 人: 
 * 修改内容:
 * 包括Bug/变更:<bug/变更 ID> 活动标题  >
 * 
 */
package com.zte.ihs.eyouems.test;

import java.net.MalformedURLException;
import java.net.URL;

import org.codehaus.xfire.client.Client;

/**
 * 类 编 号:TestCallWebService.java
 * 类 名 称:
 * 内容摘要:
 * 完成日期:
 * 编码作者:
 */
public class TestCallWebService
{
    //记得传入WebServer的服务地址,应该从常量配置中获得。
    URL ServerUrl = null;
    
    public String sendESBMessage(String webServiceURL, String xmlStr)
    {

        try
        {
            ServerUrl = new URL(webServiceURL);
        }
        catch (MalformedURLException e1)
        {
            e1.printStackTrace();
        }

        Client client = null;
        Object[] returnMessage = null;

        try
        {
            client = new Client(ServerUrl);
        
        //就是这里了,指定调用的方法,并传入参数  
        returnMessage = client.invoke("SendMsg", new Object[] { "测试", xmlStr });
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }

        String receiveMessage = (String) returnMessage[0];

        return receiveMessage;
    }

}

6 楼 wangwenpinghello 2007-04-27  
大家都用过,我想请教一个问题,怎么使用xfire客户端来调用远程的xfire  WebService啊,最好有个例子
5 楼 afteryuan 2007-03-06  
找到问题了。If you have constructors defined in your Java beans, make sure a default constructor (i.e. no arguments) is also declared. (Aegis needs a no-argument contstructor to instantiate client Java classes.)

需要一个无参的构造器。
4 楼 afteryuan 2007-03-06  
一直报org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Couldn't instantiate class. cn.lsdf.ebs.webservice.remote.OrderForm
org.codehaus.xfire.fault.XFireFault: Couldn't instantiate class. cn.lsdf.ebs.webservice.remote.OrderForm异常,怎么回事。
<?xml version="1.0" encoding="UTF-8"?>
<mappings>
  <mapping >
    <method name="getOrderForms">   
      <return-type componentType="cn.lsdf.ebs.webservice.remote.OrderForm"/>
    </method>
    <method name="getOrderForm">   
      <return-type componentType="cn.lsdf.ebs.webservice.remote.OrderForm"/>
    </method>
  </mapping>
</mappings>
3 楼 卒子99 2007-02-07  
XFire用过一段时间,感觉还是不错的,相对axis来说,部署相当简单,基本上写完Java类就搞定了。相对于axis2来说,它使用的性的特性,如采用Rest的传输协议,采用Stax的XML处理模型,还有许多新的特性和标准,感觉XFire在WS方面会大有作为,关注ing,有要学习的可以交流一下啦
2 楼 superallen 2007-02-07  
试一下吧,我是用的5.5.9,JBOSS4.0也可以。
但websphere application server 和weblogic不行
1 楼 mcikevin 2007-02-06  
tomcat5.0.28可以吗?

相关推荐

    java使用XFire调用webService接口

    下面,我们将通过一个简单的例子,展示如何使用 XFire 调用 webService 接口。 服务端(为客户端提供 webservice 接口) 在服务端,我们需要创建一个 web 服务项目,使用 XFire 框架,并配置好 web.xml 文件。然后...

    Java使用XFire调用WebService接口

    这篇博客“Java使用XFire调用WebService接口”显然是讨论如何利用XFire这个开源框架来与Web服务交互。 XFire是Apache CXF项目的前身,它提供了一种简单的方式来创建和消费SOAP Web服务。XFire的强项在于其轻量级和...

    Xfire调用webservice无法传递参数问题

    标题“Xfire调用WebService无法传递参数问题”暗示了开发者在尝试使用Xfire框架时遇到了参数无法正常传递到Web服务的情况。这可能涉及到多个方面,如编码问题、序列化错误、类型不匹配或者配置不正确等。以下是一些...

    xfire实现webservice实例

    XFire是Java平台上一个曾经流行的开源框架,专门用于构建和消费Web服务。本实例将深入探讨如何利用XFire来实现Web服务。 一、XFire简介 XFire是Apache CXF项目的前身,它提供了一个轻量级、高性能的框架,用于创建...

    基于 xfire 的 webservice 项目

    XFire是Java平台上的一个开源库,它为创建和消费Web服务提供了一种简单、高效的方法。这个基于XFire的WebService项目,可能是为了演示如何利用XFire框架来构建和部署Web服务,以及如何与其他系统进行交互。 【描述...

    xfire调用webservice

    xfire是一款基于Java的开源WebService框架,它提供了一个简单、灵活和高效的方式来开发和部署WebService。xfire可以与多种类型的WebService结合使用,如SOAP、REST、XML-RPC等。xfire还提供了一个基于annotation的...

    Xfire调用webservice无法接收到参数问题解决

    标题"Xfire调用webservice无法接收到参数问题解决"指出的核心问题是:当使用Xfire作为客户端调用Web服务时,服务端无法正确接收到传递的参数。这可能是由于多种原因引起的,如: 1. **XML序列化与反序列化问题**:...

    用XFire开发Webservice简单实例

    **标题:“用XFire开发Webservice简单实例”** 在IT行业中,Web服务是不同系统间进行数据交换和功能调用的重要方式。XFire是Apache软件基金会的一个开源项目,它提供了一个轻量级、高效的框架来创建和消费Web服务。...

    xfire发布webservice服务

    【标题】:“xfire发布webservice服务” 在Java开发中,XFire是一个早期流行的Web服务框架,用于创建和消费Web服务。XFire是Apache CXF的前身,它提供了简单、高性能的方式来实现基于SOAP的Web服务。这篇博客文章...

    xfire发布webservice实例无需设置地址和端口号

    xfire简单实例发布webservice,引用到2个jar包的简单例子

    xfire构建WebService例子

    本教程将详细讲解如何使用XFire来创建和消费一个简单的WebService。 首先,我们需要理解什么是XFire。XFire(现已被Apache CXF项目吸收)是一个基于Java的Web服务栈,它简化了SOAP(简单对象访问协议)和WS-*(Web...

    用XFire开发WebService+Spring注解

    【标题】"用XFire开发WebService+Spring注解"涉及的主要知识点是利用XFire框架创建Web服务,并结合Spring框架的注解进行服务的管理和集成。XFire是一个强大的Java Web Service实现,它允许开发者轻松地创建和消费...

    spring+xfire( 编写webservice完整配置+案例)

    Spring 和 XFire 是一个经典的组合,用于在Java应用程序中创建和消费Web服务。Spring作为一个强大的框架,提供了全面的依赖注入和面向切面编程能力,而XFire是早先的Web服务实现,它允许开发者轻松地将Java接口转换...

    Spring+xFire实现webService

    Spring+xFire 实现 WebService 是一种在 Java 开发中创建和使用 Web 服务的方式,它结合了 Spring 框架的灵活性和 xFire(现在称为 Apache CXF)的 Web 服务功能。以下是对这个技术栈的详细说明: 1. **环境配置**...

    xfire发布webservice实例

    用java通过xfire框架实现ws,实现正向生成wsdl文件,并由wsdl逆向生成java ws客户端代码 测试输入:http://localhost:8080/webservice-xfire/services/CalculatorService?wsdl

    XFire-WebService

    **XFire-WebService** 是一个基于Java的开源项目,它为游戏服务器提供了强大的网络通信支持。这个源码库不仅包含了可直接运行的代码,还包含了详细的开发文件和Service说明文档,便于开发者理解和使用。 首先,我们...

    xfire发布webservice

    通过上述步骤,我们可以清晰地看到如何利用XFire框架在服务器端发布一个简单的WebService,以及如何在客户端调用该服务。整个过程涉及项目创建、服务类编写、服务配置、以及客户端的调用,每个环节都是构建一个功能...

    Xfire整合webservice jar包

    xfire-aegis-1.2.2.jar xfire-annotations-1.2.2.jar xfire-core-1.2.2.jar xfire-java5-1.2.2.jar xfire-jsr181-api-1.0-M1.jar xfire-spring-1.2.2.jar xfire-xmlbeans-1.2.2.jar 支持将Web服务绑定到POJO、...

    Xfire建立WebService.zip

    【Xfire建立WebService】 在IT行业中,Web服务是一种标准的通信协议,允许不同的应用程序之间进行交互,无论它们是运行在何种操作系统或编程语言上。Xfire是一款已经停更的即时通讯软件,主要用于游戏社区,而将...

Global site tag (gtag.js) - Google Analytics