在序列化的时候,openamf居然想在这个地方做一个优化
if (storedObjects.containsKey(value)) {//175行
writeStoredObject(value);
return;
}
storeObject(value);
//另外一个方法
private void writeStoredObject(Object obj) throws IOException {
if (log.isDebugEnabled())
log.debug("Writing object reference for " + obj);
outputStream.write(AMFBody.DATA_TYPE_REFERENCE_OBJECT);
outputStream.writeShort(((Integer) storedObjects.get(obj)).intValue());
}
Writing object reference
我实在是想不通作为一个中转的序列化方法,为什么要干涉序列化结果。这种优化很无厘头而且没有任何效果。
如何重现这种bug?
序列化对象:new Object[]{user,user}; 2个user属于同一个对象。 这样就行了
经过序列化第一个user ok 第二个则变成了“object reference”
当然,这种优化也许是可以得。需要服务器和客户端的配合。否则客户端不知道这个是对象的引用就完了。
如果不想改就直接注释这么一段源码。
分享到:
相关推荐
Java调用OpenAMF是一种将Java应用程序与使用Adobe Flex或...这个过程涉及到对AMF协议的理解、OpenAMF库的使用以及Java对象的序列化和反序列化技术。在实际项目中,可能还需要根据具体需求进行相应的定制和优化。
- AMF协议:理解AMF数据序列化的过程,如何将Java对象转换为AMF消息,以及如何反序列化AMF消息回Java对象。 - Remoting原理:了解如何通过网络传递远程调用,并在服务器端执行,然后将结果返回给客户端。 - OpenAMF...
5. **SerializationExample**:序列化示例,展示了AMF如何将复杂对象序列化和反序列化,以便于在客户端和服务器之间传输。 四、应用实例 1. **数据交换**:通过OpenAMF,可以高效地发送和接收复杂的数据结构,如数...
OpenAMF,全称为Open Action Message Format,是一款开源的、基于AMF(Action Message Format)的通信框架,它为Flash客户端和服务器端之间的数据交换提供了高效的序列化机制。AMF是一种二进制的数据交换格式,由...
OpenAMF提供了一种高效的AMF(Action Message Format)数据序列化机制,使得Java对象可以被快速、高效地编码和解码为二进制格式,从而在服务器和客户端之间进行高效的数据交换。 在"openamf最完整实例java + flash+...
FLEX连接java的开源框架
2. 在文档类中,实例化`NetConnection`对象,设置连接,以及定义一个`Responder`对象来处理服务器响应。通过`NetConnection`对象调用Java服务的`sayHello`方法,并传递参数。 3. 当Flash客户端与Java服务端成功连接...
NULL 博文链接:https://balan326.iteye.com/blog/1285663
这有助于自动化开发流程,提高效率。 综上所述,这篇博客文章可能会涵盖如何配置OpenAMF以与Spring集成,如何创建自定义的Java服务调用器,以及如何通过构建脚本来管理整个项目生命周期。这些知识点对于想要开发...
此外,还有其他通信方式,如OpenAMF,它们实现ActionScript与Java数据格式之间的转换,使用AMF协议进行序列化和反序列化操作。 ActionScript(AS3)是Flex的基础脚本语言,与Java和JavaScript有诸多相似之处。AS3中...
在Moonfree中,Spring作为服务层的管理者,负责控制业务逻辑和服务的生命周期,确保系统模块化和可扩展性。 4. **Java后端**:Java是Moonfree的核心后端开发语言,其强大的性能和跨平台能力使得Moonfree能够处理...
已经在早前就听说了,Adobe公司的开源项目bazeds,可是当时做flash,用到了openamf,所以没有在意,但是现在觉得flex开发应用软件更具有杀伤力,所以准备研究flex。折腾了一周的时间想做个flex+java的helloworld例子...
在Flex中开发XMPP应用,通常会结合Adobe BlazeDS或OpenAMF等中间件,它们可以处理与Java后端的通信。BlazeDS提供了与Java Remoting和Web Services的集成,使得Flex客户端可以方便地调用服务器端的方法,实现XMPP功能...
- openamf.jar:可能是一个Flex或AMF(Action Message Format)相关的库,用于客户端与服务器间的数据传输。 - junit.jar:JUnit是Java单元测试的标准框架,用于编写和执行测试代码。 - jsp-api-2.0.jar:JavaServer...
- **OpenAMF**:基于Java的开源项目,目前仅支持AMF0。 - **GDS (Granite Data Services)**:基于Java平台,支持AMF3。 - **WebORB**:支持.NET, Java, PHP, Ruby等多种平台,同时支持AMF0和AMF3。 - **FluorineFX**...