`
devil13th
  • 浏览: 43423 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

xfire webservice 教程

阅读更多

作者:ThirdteenDevil 十三妖

qq: 181907667

 

说明:这个例子可以解决webservice 传递自定义对象

 

服务器的文件及设置

 

在web.xml配置xfire的servlet

<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> </servlet-mapping>


 

建立想要发布程序的接口 IUserService.java

package com.devil13th.xfire; import java.util.List; public interface IUserService { public String msg(String g); public User findUsr(String usrName); public List getAllUsr(); }


 注意:getAllUsr返回的类型是List类型,如果是jdk1.4或以下版本要加入下面的文件,放在和发布的接口(IUserService)相同的目录下!文件的命名要和接口一样(接口名.aegis.xml),如果是jdk1.5或以上则使用泛型就可以了 IUserService.aegis.xml:

<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> </servlet-mapping>


 

建立想要发布程序的接口实现 UserServiceImpl.java

package com.devil13th.xfire; import java.util.ArrayList; import java.util.List; public class UserServiceImpl implements IUserService{ public String msg(String g){ System.out.println(g); return g; }; public User findUsr(String usrName){ User u = new User(); u.setName(usrName); return u; } public List getAllUsr(){ List l = new ArrayList(); for(int i = 0 ; i < 5 ; i++){ User u = new User(); u.setName("name_"+ i); l.add(u); } return l; } }


 

所需要的User类 User.java

package com.devil13th.xfire; public class User { public String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }


 

建立services.xml

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <name>userService</name> <namespace>userServiceTest</namespace> <serviceClass> com.devil13th.xfire.IUserService </serviceClass> <implementationClass> com.devil13th.xfire.UserServiceImpl </implementationClass> </service> </beans>


 其中 name 是service名称用于后面输入网址访问使用
serviceClass是服务接口的名称
implementationClass是服务接口的实现类
把写好的services.xml放在src/META-INF/xfire目录下,生成到classes目录下。

注意是src下的META-INF,不是webroot下的META-INF

最近有些朋友因使用Spring2.0以上版本时,会发生如下异常:
ERROR - Error initializing XFireServlet. org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized xbean element mapping: beans in namespace http://xfire.codehaus.org/config/1.0 改成如下形式即可:

<?xml version="1.0" encoding="UTF-8"?> <beans> <service xmlns="http://xfire.codehaus.org/config/1.0"> <name>userService</name> <namespace>userServiceTest</namespace> <serviceClass> com.devil13th.xfire.IUserService </serviceClass> <implementationClass> com.devil13th.xfire.UserServiceImpl </implementationClass> </service> </beans>


 

 测试服务:

把服务打开后在地址栏中输入http://127.0.0.1:8080/xfire/services/userService?wsdl后的结果应该是一个xml就说明搭建成功了。

 

 

下面是客户端调用

建立接口 IUserService.java

package com.devil13th.client; import java.util.List; import com.devil13th.xfire.User; public interface IUserService { public String msg(String g); public User findUsr(String usrName); public List getAllUsr(); }


 这个接口要和服务端的接口一致

注意:getAllUsr返回的类型是List类型,如果是jdk1.4或以下版本要加入下面的文件,放在和发布的接口(IUserService)相同的目录下!文件的命名要和接口一样(接口名.aegis.xml),如果是jdk1.5或以上则使用泛型就可以了
这个接口和xml文件可以直接拷贝服务器端的接口和xml文件

 

建立接口使用的bean User.java

package com.devil13th.xfire; public class User { public String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }


 特别注意:这个bean的名称以及包名一定要和服务器端使用到的bean一样!!!!

 

客户端调用

package com.devil13th.client; import java.util.List; import org.codehaus.xfire.XFireFactory; import org.codehaus.xfire.client.XFireProxyFactory; import org.codehaus.xfire.service.Service; import org.codehaus.xfire.service.binding.ObjectServiceFactory; import com.devil13th.xfire.User; public class ClientTest { public static void main(String[] args) { Service serviceModel = new ObjectServiceFactory() .create(IUserService.class); XFireProxyFactory factory = new XFireProxyFactory(XFireFactory .newInstance().getXFire()); String helloWorldURL = "http://127.0.0.1:8080/xfire/services/userService"; try { IUserService ts = (IUserService) factory.create(serviceModel, helloWorldURL); // msg 方法调用 System.out.println(ts.msg("22")); //findUsr 方法调用 User u = ts.findUsr("十三妖"); System.out.println(u.getName()); //getAllUsr 方法调用 List l = ts.getAllUsr(); System.out.println(l.size()); for(int i = 0 , j = l.size(); i < j ; i++){ User ux = (User)l.get(i); System.out.println(ux.getName()); } } catch (Exception e) { System.out.println(e); } } }


 

 

一切ok啦 例子在附件中 写的比较详细了就不再做多余的解释了

 

 

 

 

分享到:
评论

相关推荐

    xfire教程+axis+webservice

    XFire是codeHaus组织提供的一个开源框架,它构建了POJO和SOA之间的桥梁,主要特性就是支持将POJO通过非常简单的方式发布成Web服务,这种处理方式不仅充分发挥了POJO的作用,简化了Java应用转化为Web服务的步骤和过程...

    webservice教程(xfire+spring)

    【Web服务基础与XFire简介】 Web服务是一种基于开放标准(如XML,SOAP,WSDL和UDDI)的通信协议,它允许不同系统之间的应用程序相互通信,从而实现跨平台的数据交换。Web服务的核心技术包括:简单对象访问协议...

    xfire webservice 完整实例下载

    XFire Webservice是一个基于Java的开源工具,它简化了创建、部署和消费Web服务的过程。在深入探讨这个完整实例之前,我们首先需要了解Web服务的基本概念。Web服务是一种通过网络进行通信的应用程序接口(API)。它们...

    xfire webservice 上传下载源码

    **XFire Webservice 上传下载源码详解** XFire 是一款强大的Java Web服务框架,它为开发者提供了构建高质量、高性能的Web服务的工具。在"xfire webservice 上传下载源码"这个主题中,我们将深入探讨如何使用XFire来...

    spring集成xfire webservice实现

    spring集成xfire webservice实现远程调用 将项目发布后,点击http://localhost:8080/SpringWebServiceTest/services/HelloWS?wsdl即可 其中也有客户端的调用,自己试试吧。

    xfire webservice集成最少8个包

    标题中的“xfire webservice集成最少8个包”指的是在使用XFire框架开发Web服务时,所需的最小依赖库数量。XFire是早期流行的Java Web服务实现框架,它允许开发者快速创建、部署和消费Web服务。这里提到的8个包可能...

    java使用XFire调用webService接口

    "Java 使用 XFire 调用 webService 接口" 在本文中,我们将学习如何使用 XFire 框架在 Java 中调用 webService 接口。XFIRE 是一个基于 Java 的开源框架,用于简化 Web 服务的开发和集成。下面,我们将通过一个简单...

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

    在本教程中,我们将深入探讨如何使用Spring和XFire编写Web服务的完整配置,并通过实际案例来学习这一过程。 首先,我们需要了解Spring和XFire的基础。Spring框架提供了一个名为Spring-WS的模块,专门用于构建Web...

    XFire Webservice 服务器端

    XFire Webservice 服务器端是一个专门用于游戏社区的网络服务接口,它允许开发者与XFire游戏客户端进行交互,实现各种功能,如用户登录、好友系统、游戏统计等。在这个压缩包文件中,"WSA"可能代表Web Service ...

    grails+Xfire webservice

    grails+Xfire webservice

    XFire WebService精简包

    XFire WebService精简包是针对开发者设计的一款轻量级工具集合,主要用于快速搭建和运行XFire WebService项目。在IT行业中,Web服务是一个关键组件,它允许不同系统和应用程序之间进行数据交换和功能调用,实现...

    简单的XFire WebService例子

    2. **阅读XFire文档**:官方文档提供了丰富的示例和教程,帮助你快速上手。 3. **动手实践**:通过编写简单的服务和客户端来实践XFire的使用,理论结合实践能加深理解。 4. **调试与测试**:学会使用XFire的测试工具...

    XFire Webservice 客户端

    **XFire Webservice 客户端详解** XFire Webservice 客户端是一款专为连接XFire游戏平台的网络服务而设计的应用程序。XFire是一个已停运的在线游戏社区,它允许玩家与朋友交流、追踪游戏状态以及分享游戏成就。尽管...

    Xfire Webservice的例子

    Xfire Webservice是一个基于Java平台的服务框架,它允许开发者创建和使用Web服务。这个框架的主要目的是简化Web服务的开发过程,使开发人员可以快速地构建分布式应用程序。在本例中,我们将探讨Xfire Webservice与...

    Java使用XFire调用WebService接口

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

    XFIRE webservice 开发实例

    **XFIRE Webservice 开发实例详解** 在信息技术领域,Webservice是一种基于互联网的、平台无关的交互方式,它允许不同的应用程序之间进行数据交换和功能共享。而XFIRE是一款专为游戏社区设计的软件,它提供了丰富的...

    xfire webservice 集成spring客户端封装例子

    xfire webservice 集成spring客户端封装成到一个类打包到客户端就像调静态方法一样

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

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

Global site tag (gtag.js) - Google Analytics