- 浏览: 932848 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (251)
- WebService (17)
- IBatis (22)
- Hibernate (1)
- SpringMVC - 基础篇 (32)
- Spring (15)
- Java (11)
- JVM及调优 - 基础篇 (4)
- 集群 (14)
- 数据库 (17)
- WebSphere (5)
- 多线程 (4)
- 集合、容器 (2)
- DB Pool (1)
- Power Designer (5)
- Maven基础 (5)
- JS (14)
- WEB 前端 (5)
- 实用小工具 (17)
- 社会、人 (2)
- 乱七八糟 (18)
- ASM&CGLIB - 基础篇 (12)
- 缓存 (1)
- 性能 (1)
- 设计之殇 (1)
- 分布式事务 (1)
- 单点登录 (11)
- 分布式 Session (4)
- Memcached - 基础篇 (6)
最新评论
-
一笑_奈何:
楼主写的还真行不错。
扫盲贴 - J2EE集群之JNDI集群实现 -
xuezhongyu01:
博主写的很详细,但最后还是没明白,最后调用BasicDataS ...
Spring中的destroy-method方法 -
Mr梁:
commons-fileupload.jar commons- ...
SpringMVC 中文件上传 MultipartResolver -
Eywa:
总结的很不错
ORACLE CASE WHEN 及 SELECT CASE WHEN的用法 -
TryRelax:
fastjson 比 jackson 好用吧?
Spring MVC Jackson DateFormat
简单记录XFire中怎么传输对象的实现,以备查阅;又不正确的地方请看官们指正!
1、先来看看我们的Interface
package com.wy; import java.util.List; /** * 服务端接口; * @author Administrator * */ public interface IPerson { public String example(String message); public abstract List<Person> getPersonList(); public abstract List<Person> setPersonList(List<Person> personList); public abstract Person getPersonObj(); }
这其中包含了简单对象的传递,对象的传递,List的传递。
2、实现接口和业务逻辑
package com.wy; import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class PersonImpl implements IPerson, Serializable { private static final long serialVersionUID = 1L; public String example(String message) { return "你好,"+message; } public List<Person> getPersonList() { List<Person> list = new ArrayList<Person>(); Person person = new Person(); person.setAge(22); person.setName("Wang"); person.setSex("Boy"); list.add(person); Person person2 = new Person(); person2.setAge(19); person2.setName("Sun"); person2.setSex("Girl"); list.add(person2); return list; } public List<Person> setPersonList(List<Person> personList) { return personList; } public Person getPersonObj() { Person person = new Person(); person.setAge(22); person.setName("ZengPing"); person.setSex("Girl"); Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "HuFang"); map.put(2, "DuanYouYu"); map.put(3, "TianWei"); List<String> list = new ArrayList<String>(); list.add("List1"); list.add("List2"); list.add("List3"); person.setList(list); person.setMap(map); return person; } }
用到的Person,必须实现Serializable,才能够传输.否则会找不到,对应的文件, 从服务器返回过来的数据会为null;
package com.wy; import java.io.Serializable; import java.util.List; import java.util.Map; /** * Entry * @author Administrator * */ public class Person implements Serializable{ private static final long serialVersionUID = 1L; private String name; private int age; private String sex; private List<String> list; private Map<Integer, String> map; public Person() { } public Person(String name, int age, String sex,List<String> list,Map<Integer, String> map) { super(); this.name = name; this.age = age; this.sex = sex; this.list = list; this.map = map; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public List<String> getList() { // TODO Auto-generated method stub return list; } public void setList(List<String> list) { // TODO Auto-generated method stub this.list = list; } public void setMap(Map<Integer, String> map) { // TODO Auto-generated method stub this.map = map; } public Map<Integer, String> getMap() { // TODO Auto-generated method stub return map; } }
3、在src/META-INF/xfire/services.xml,编译时会自动编译到classes的相应目录下面
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <name>PersonService</name> <serviceClass>com.wy.IPerson</serviceClass> <implementationClass> com.wy.PersonImpl </implementationClass> <scope>request</scope> </service> </beans>
4、因为用到了List、Map等集合类型,所以需要定义Mapping关系,文件名为:src/test/IPerson.aegis.xml
<?xml version="1.0" encoding="UTF-8"?> <mappings> <mapping> <method name="getList"> <parameter index="0" componentType="java.lang.String" /> <return-type componentType="com.wy.Person" /> </method> </mapping> <mapping> <method name="getMap"> <parameter index="0" componentType="java.lang.String" /> <return-type componentType="com.wy.Person" /> </method> </mapping> </mappings>
注意,此文件一定要放到与IHelloService.java相同的目录下面,否则会出错。
5、在Web.xml中配置XFire需要用到的Servlet
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" 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> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
此时Web Service的服务端就开发完成了。
现在来看看客户端的代码吧
package com.wy; import java.net.MalformedURLException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import org.codehaus.xfire.client.XFireProxyFactory; import org.codehaus.xfire.service.Service; import org.codehaus.xfire.service.binding.ObjectServiceFactory; public class Client { /** * 主方法; * * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String url = "http://localhost:8080/WebServiceXFire/services/PersonService"; Service serviceModel = new ObjectServiceFactory().create(IPerson.class); try { IPerson person = (IPerson) new XFireProxyFactory().create( serviceModel, url); // System.out.println(person.example("WebService!")); System.out.println("-----------------1------------------"); List<Person> list = person.getPersonList(); // 输出Person list集合; for (Person per : list) { System.out.println(per.getName() + "," + per.getAge() + "," + per.getSex()); } System.out.println("-----------------2------------------"); List<Person> list2 = new ArrayList<Person>(); Person person2 = new Person(); person2.setAge(20); person2.setName("Test"); person2.setSex("Girl"); list2.add(person2); // 设置Person list集合; List<Person> personList2 = person.setPersonList(list2); // 输出从服务器端返回的集合数据; for (Person per : personList2) { System.out.println(per.getName() + "," + per.getAge() + "," + per.getSex()); } System.out.println("-----------------3------------------"); // 调用服务器端的单个对象; Person person3 = person.getPersonObj(); System.out.println(person3.getName() + "," + person3.getAge() + "," + person3.getSex()); System.out.println("-----------------4------------------"); System.out.println("\n服务器端返回的List集合"); List<String> list3 = person3.getList(); for (String str : list3) { System.out.println(str); } System.out.println("------------------5-----------------"); Map<Integer, String> map = person3.getMap(); System.out.println("\n服务器端返回的Map集合"); for (Iterator<Integer> iterator = map.keySet().iterator(); iterator .hasNext();) { int resultKey = iterator.next(); String resultValue = map.get(resultKey); System.out.println(resultKey + "," + resultValue); } System.out.println("-------------------6----------------"); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
发表评论
-
WebService CXF --- 传输文件MTOM
2011-12-25 14:06 13183一、几个相关的概念 ... -
WebService CXF JAXB角色及简单使用
2011-12-24 22:23 3655WebService传递XML文档,当然也可以传递JSON对象 ... -
WebService CXF SOAP基本结构
2011-12-24 18:20 2087SOAP 是基于 XML 的简易协议,可使应用程序在 HTTP ... -
WebService CXF WSDL描述
2011-12-24 18:16 1296原文http://www.ibm.com/develo ... -
Sping3+CXF Web应用
2011-12-24 00:21 1493一、准备环境 Apache Cxf 2.4.5 ... -
WebService CXF下的Service(URL, QName, WebServiceFeature[]) is undefined
2011-09-21 21:11 2704Service(URL, QName, WebServiceF ... -
WebService CXF 如何设置 timeout
2011-05-21 09:31 4382由于用CXF构建的webservice使用的是spring配置 ... -
让Apache CXF 支持传递java.sql.Timestamp和java.util.HashMap类型
2011-05-02 12:46 2483让Apache CXF 支持传递java.sql.Timest ... -
WebService CXF 中的拦截器(Interceptor)
2011-05-02 12:38 3593CXF的Interceptor在每个请求响应之前或响应之后,做 ... -
WebService CXF中传递复杂类型对象
2011-05-02 12:07 12977前面一篇文章介绍的都是传递简单的字符串,现在开始介绍传递复杂类 ... -
WebService CXF --- 由WSDL文件开发Client端
2011-04-30 17:49 3870WSDL文件:http://www.webxml.com.cn ... -
WebService CXF----JAX-RPC 与 JAX-WS
2011-04-30 10:00 4392Web服务: 1、SOAP 2、WSDL ... -
WebService CXF --- 创建基础的示例
2011-04-09 16:11 15771、开发环境: cxf-2.3.3 ... -
WebService CXF --- CXF简单介绍
2011-04-09 14:48 41791、WebService介绍 WebService让 ... -
一个基础的XFire WebService快速开发
2011-04-03 09:03 1566环境: XFire-1.2.6 JDK1.5 MyEcl ... -
axis和xfire以及CXF
2011-04-03 08:51 1552由于最近使用WebService,于是到网上疯狂搜索,找点资料 ...
相关推荐
由于XFire与Spring框架的深度融合,使得开发者能够更加便利地在Spring环境中构建Web Service应用,这正是XFire在开源社区受到追捧的原因。 在XFire与Spring集成开发的过程中,主要分为以下几个步骤: 1. **配置web...
在“Web Service 之 XFire入门”这篇文章中,博主可能还会分享如何通过实例代码来演示这些步骤,例如创建一个名为“helloworld”的简单服务,这个服务可能只有一个返回“Hello, World!”的函数。这样的例子有助于...
Xfire Web Service是Xfire提供的一种API,允许开发者集成Xfire的功能到自己的应用或网站中。 Xfire-1.2.6开发包包含了与Xfire Web Service交互所需的所有组件,这包括但不限于SDK文档、示例代码、库文件以及可能的...
XFire是Apache CXF的前身,它简化了Web服务开发过程,提供了多种API和工具,包括JAXB(Java Architecture for XML Binding)用于对象到XML的转换,以及Aegis,一个用于将Java类直接映射为SOAP消息的库。XFire支持...
在XFire中创建一个Web Service实例,首先需要定义一个Java接口或类,该接口或类代表要暴露的服务。接着,使用XFire的API或注解来标记这个接口或类,声明它是一个Web服务。然后,通过XFire的ServerFactoryBean创建并...
**Web Service XFire框架开发指南** Web Service是一种基于开放标准(如XML、WSDL和SOAP)的互联网通信协议,允许不同系统之间的应用程序进行交互。XFire是Java平台上的一个开源Web Service框架,它提供了一种简单...
Java Web Service引擎Xfire是一个用于构建和消费Web服务的开源框架,它简化了在Java平台上创建和使用Web服务的过程。这个图文教程将指导你如何使用Xfire来实现一个简单的Web服务。 首先,你需要在你的Web项目中添加...
【使用XFire+Spring构建Web Service】是一种高效且灵活的方法,尤其适合于那些希望利用Spring框架的优秀特性来开发Web Service应用的开发者。XFire是一个先进的Web Service框架,与Axis2并列为新一代的选择,因其...
在"xfire开发Web Service接口第一个程序"这个文件中,你可能会找到一个简单的示例,展示如何创建一个计算两个数相加的Web Service。这个例子可能包括定义服务接口、实现接口、配置服务以及启动服务的步骤。通过分析...
在Java开发中,XFire是一个流行的框架,用于实现Web服务。本文将详细介绍如何使用XFire在Java中创建和消费Web服务。 首先,理解Web Service的基本概念至关重要。Web Service是一种采用统一的XML(可扩展标记语言)...
三、XFire与Web Service调用 在Java中,使用XFire调用Web服务的基本步骤如下: 1. 创建客户端代理:XFire使用WSDL文档生成客户端代理类。这个代理类提供了服务方法的直接访问,就像调用本地方法一样。可以使用XFire...
在"Web_Service学习手册(Xfire)"中,你可能会学习到以下关键知识点: 1. **Xfire安装与配置**:如何下载Xfire库,配置到项目中,以及如何设置环境变量。 2. **创建第一个Web服务**:从定义服务接口,到实现服务类,...
【MyEclipse+xFire开发Web Service】是一个关于如何使用MyEclipse集成开发环境和xFire框架来构建和测试Web服务的教程。xFire是一个基于Java的SOAP框架,它提供了轻量级的信息处理机制,利用STAX进行SOAP消息处理。这...
Web服务中XFire的配置和在客户端的配置,图解说明Web服务中XFire的配置和在客户端的配置,图解说明Web服务中XFire的配置和在客户端的配置,图解说明Web服务中XFire的配置和在客户端的配置,图解说明Web服务中XFire的...
在文件列表中,"xfire开发web service文档.doc"可能是主文档,包含了整个教程的详细内容,包括理论解释、示例代码、步骤指南和可能的截图,以帮助读者逐步学习和实践使用XFire创建Web服务。 总的来说,这个压缩包...
本项目“Java Web Service xFire Demo”是一个完整的示例,用于演示如何在Java环境中使用xFire实现Web服务。 首先,让我们深入了解xFire的核心概念。xFire基于Apache CXF项目,它提供了强大的XML绑定、协议处理和WS...
XFire通过使用Java注解或XML配置文件,使得开发者可以快速地将Java对象暴露为Web服务,或者消费远程Web服务。 自定义实体类是我们在开发中经常会遇到的一种情况。实体类通常用于封装业务逻辑中的数据,它们是数据库...
《XFire Java Web Service 客户端详解》 在当今的软件开发中,Web服务已经成为分布式系统间交互的重要手段。XFire,作为一个历史悠久的Java Web Service框架,为开发者提供了便捷的方式来创建、部署和消费Web服务。...
【整合XFire与Spring进行Web ...创建专门管理XFire的配置文件`spring.xfire.xml`,在这个文件中,定义Web Service的服务端点、绑定和行为。例如,注册`UserService`接口的实现,并配置到Web Service中: ```xml ...
总之,XFire Web Service在MyEclipse 6中的应用为Java开发者提供了一个强大的平台,用于快速构建、部署和测试Web服务。通过上述步骤,无论是新手还是经验丰富的开发者,都能有效地利用XFire来提升Web服务开发的效率...