`
aa87963014
  • 浏览: 154504 次
  • 性别: Icon_minigender_1
  • 来自: 布尼塔尼亚
社区版块
存档分类
最新评论

openamf序列化bug

 
阅读更多

在序列化的时候,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

 

当然,这种优化也许是可以得。需要服务器和客户端的配合。否则客户端不知道这个是对象的引用就完了。

 

如果不想改就直接注释这么一段源码。

0
1
分享到:
评论
1 楼 aa87963014 2011-12-15  
忘记说了是 AMFSerializer 这个类 175行

相关推荐

    java调用openamf实例,把取回的结果转换成list或bean.

    Java调用OpenAMF是一种将Java应用程序与使用Adobe Flex或...这个过程涉及到对AMF协议的理解、OpenAMF库的使用以及Java对象的序列化和反序列化技术。在实际项目中,可能还需要根据具体需求进行相应的定制和优化。

    openamf-java

    - AMF协议:理解AMF数据序列化的过程,如何将Java对象转换为AMF消息,以及如何反序列化AMF消息回Java对象。 - Remoting原理:了解如何通过网络传递远程调用,并在服务器端执行,然后将结果返回给客户端。 - OpenAMF...

    openamf-1.0RC12-exampless.rar

    5. **SerializationExample**:序列化示例,展示了AMF如何将复杂对象序列化和反序列化,以便于在客户端和服务器之间传输。 四、应用实例 1. **数据交换**:通过OpenAMF,可以高效地发送和接收复杂的数据结构,如数...

    openamf-1.0.2

    OpenAMF,全称为Open Action Message Format,是一款开源的、基于AMF(Action Message Format)的通信框架,它为Flash客户端和服务器端之间的数据交换提供了高效的序列化机制。AMF是一种二进制的数据交换格式,由...

    openamf最完整实例java + flash+eclipse工程源码

    OpenAMF提供了一种高效的AMF(Action Message Format)数据序列化机制,使得Java对象可以被快速、高效地编码和解码为二进制格式,从而在服务器和客户端之间进行高效的数据交换。 在"openamf最完整实例java + flash+...

    openamf-1.0RC12.zip

    FLEX连接java的开源框架

    第十五节 OPENAMF.docx

    2. 在文档类中,实例化`NetConnection`对象,设置连接,以及定义一个`Responder`对象来处理服务器响应。通过`NetConnection`对象调用Java服务的`sayHello`方法,并传递参数。 3. 当Flash客户端与Java服务端成功连接...

    openamf自行小改动获取客户端请求IP

    NULL 博文链接:https://balan326.iteye.com/blog/1285663

    构建FLASH和JAVA FOR SPRING应用(一)

    这有助于自动化开发流程,提高效率。 综上所述,这篇博客文章可能会涵盖如何配置OpenAMF以与Spring集成,如何创建自定义的Java服务调用器,以及如何通过构建脚本来管理整个项目生命周期。这些知识点对于想要开发...

    FLEX培训总结

    此外,还有其他通信方式,如OpenAMF,它们实现ActionScript与Java数据格式之间的转换,使用AMF协议进行序列化和反序列化操作。 ActionScript(AS3)是Flex的基础脚本语言,与Java和JavaScript有诸多相似之处。AS3中...

    Moonfree-开源

    在Moonfree中,Spring作为服务层的管理者,负责控制业务逻辑和服务的生命周期,确保系统模块化和可扩展性。 4. **Java后端**:Java是Moonfree的核心后端开发语言,其强大的性能和跨平台能力使得Moonfree能够处理...

    flex and blazed blazeds简单例子

    已经在早前就听说了,Adobe公司的开源项目bazeds,可是当时做flash,用到了openamf,所以没有在意,但是现在觉得flex开发应用软件更具有杀伤力,所以准备研究flex。折腾了一周的时间想做个flex+java的helloworld例子...

    IM 即时通讯 开发实例

    在Flex中开发XMPP应用,通常会结合Adobe BlazeDS或OpenAMF等中间件,它们可以处理与Java后端的通信。BlazeDS提供了与Java Remoting和Web Services的集成,使得Flex客户端可以方便地调用服务器端的方法,实现XMPP功能...

    struts,spring,hibernate.jar 包大全(五)

    - openamf.jar:可能是一个Flex或AMF(Action Message Format)相关的库,用于客户端与服务器间的数据传输。 - junit.jar:JUnit是Java单元测试的标准框架,用于编写和执行测试代码。 - jsp-api-2.0.jar:JavaServer...

    Flex4 SQL2005

    - **OpenAMF**:基于Java的开源项目,目前仅支持AMF0。 - **GDS (Granite Data Services)**:基于Java平台,支持AMF3。 - **WebORB**:支持.NET, Java, PHP, Ruby等多种平台,同时支持AMF0和AMF3。 - **FluorineFX**...

Global site tag (gtag.js) - Google Analytics