这几天,项目中的两个子系统交互用到了webservice,遇到2个很2的问题,解决了。和大家分享一下。
一 直接传输hibernate的model对象
在传输的时候,大家可能图方便直接input/output hibernate model对象,但是在某种情况下会出现问题。就是在遇到主/外键表的时候,并且hibernate做了关联,如:A 对象(主表)包含了一个List<B>对象,而B对象存在A对象外键如AId。这样在xfire序列化传输的时候就会出现无限循环的序列化!大家在使用的时候一定要注意!
二 Client端调用尽量保证Client包名Class名和Server端的一样
写完Server端的WebService以后,我就用.net去简单的测试了一下服务一切正常。然后我用java编写xfire client 的方式去测试的时候,发现发送和接收对象的property始终是null,后来在网上找了一下,才发现client的包名必须和服务器端的包名相同才行!仔细看一下wsdl发现,传输的时候xfire使用了包名做xml的namespace,我估计xfrie应该有配置namespace的地方,大家可以去查一下手册!
不过大家如果在JDK1.5以上可以使用 Client and Server Stub Generation from WSDL and Dynamic Client的方式去生成代理类,可惜的是我们项目的有一个旧子系统是JDK1.4。555~~~
分享到:
相关推荐
自定义实体类是我们在开发中经常会遇到的一种情况。实体类通常用于封装业务逻辑中的数据,它们是数据库表的映射,包含着业务对象的所有属性。在XFire中,我们可以将这些实体类直接用作Web服务的返回类型,使得服务...
Xfire的出现是为了弥补早期Web服务实现如Axis的一些性能问题。在标题中提到的“webservice数据传输方式Xfire”,主要指的是利用Xfire来构建Web服务接口,实现数据的发送和接收。Xfire采用了Java编程语言,并且充分...
在本文中,我们将深入探讨Xfire调用Web服务时遇到的参数传递问题以及解决策略。 首先,让我们了解Web服务的基本概念。Web服务基于SOAP(Simple Object Access Protocol)协议,通过HTTP协议进行通信,使得不同的...
这个方法通常会接受一个`java.io.InputStream`或`java.io.File`对象作为参数,以处理文件数据。 ```java public interface FileUploadService { void uploadFile(InputStream fileContent, String fileName); } ``...
首先,我们来看标题中的"使用XFire实现SOAP的webservice数据传输源码"。要创建一个SOAP Web服务,你需要以下步骤: 1. **定义服务接口**:使用Java编程语言定义服务接口,这些接口将代表可供远程调用的方法。 ```...
在服务端,如果需要传递复杂的对象,比如自定义的JavaBean,我们需要在`Idemo`和`DemoImpl`相同的包内创建一个名为`Idemo.aegis.xml`的文件。这个XML文件用于映射方法参数和返回类型,例如,定义一个接受`Person`...
1. **XML序列化与反序列化问题**:Xfire需要将Java对象转换为XML格式(序列化)发送给服务端,服务端再将接收到的XML还原为Java对象(反序列化)。如果双方使用的数据类型不匹配或XML格式不正确,可能会导致参数丢失...
xfire是一个早期流行的开源Web服务框架,主要用于构建SOAP(简单对象访问协议)和RESTful(Representational State Transfer)服务。这个框架使得Java开发者能够轻松地创建、部署和消费Web服务。xfire依赖于一系列的...
这对于游戏开发爱好者或者想要自定义游戏客户端的人来说具有极高的学习价值。通过阅读和分析xfire的源码,开发者能够掌握如何构建类似的游戏社交平台,包括如何实现高效的P2P通信、如何处理大规模并发用户、以及如何...
2. 消息处理和序列化:xfire-aegis.jar和xfire-xmlbeans.jar等,提供了不同的XML序列化策略,Aegis支持基本类型和自定义类型的转换,而XmlBeans则依赖于XML Schema进行对象绑定。 3. SOAP支持:xfire-soap.jar,...
但如果方法的返回类型是List或Map,并且包含自定义对象,我们需要额外的配置文件来描述这些复杂类型。例如,如果接口方法`getUsers`返回一个`List<User>`,我们需要一个名为`HelloWorld.aegis.xml`的文件: ```xml ...
XFire是早期流行的Web服务实现,它允许开发者轻松地将Java对象转换为Web服务,反之亦然。 【描述】"webService-xfire入门" 提示我们这是一个初学者指南,旨在帮助用户理解如何开始使用XFire来创建和使用Web服务。这...
**XFire Webservice 上传下载源码详解** XFire 是一款强大的Java Web服务框架,它为开发者提供了构建高质量、高性能的Web服务的工具。在"xfire webservice 上传下载源码"这个主题中,我们将深入探讨如何使用XFire来...
**Xfire:构建高效Web服务的利器** Xfire是一款历史悠久的Java Web服务框架,它允许开发者轻松地创建和消费Web服务。在这个“xfire 使用外部类、返回collection及输入数组参数示例”中,我们将深入探讨如何利用...
这个问题在标题“cxf和xfire的jar包冲突解决”中得到了明确指出。 Apache CXF是一个全面的服务开发框架,它支持SOAP、RESTful Web服务,以及多种协议和绑定。而XFire是CXF的前身,也是一个强大的Web服务框架,但它...
2. **API接口**:Xfire提供了丰富的API,使得开发者可以创建自定义的客户端、插件或者游戏集成工具,这些API往往封装在jar包中。 3. **XML数据交换**:Xfire使用XML格式传输游戏状态和用户信息,便于解析和处理。 4....
这意味着你可以直接在方法参数或返回值中使用自定义的Java对象,XFire会自动处理对象到XML的转换,大大提高了开发效率。 以下是一般的步骤来实现XFire客户端调用: 1. 获取WSDL:通过URL获取Web服务的WSDL文件。 2...
6. **异常处理**:XFire支持自定义的异常处理机制,可以通过配置或编程方式设置错误处理器,以捕获并处理通信过程中的异常。 7. **安全与认证**:为了确保服务的安全性,XFire提供了多种安全模型,如基于证书的身份...
通过查看源代码,开发者可以深入理解XFire的工作机制,进行定制化开发,解决特定场景下的问题,或优化性能。源代码的开放性也是开源项目的一大优势,促进了技术的交流与进步。 再者,`xfire-distribution-1.2.6.zip...
这通常涉及到设置SSLSocketFactory,指定信任的证书,以及处理可能出现的证书链问题。如果服务端需要客户端验证,还需要提供客户端证书。 4. **调用Web Service**:生成客户端代理后,你可以通过代理类的方法调用...