环境:BlazeDS 3.0.0.544
BlazeDS很好的帮助我们实现java对象和Flex对象的相互转化,减少了我们的硬编程量,很方便。
但是最近遇到一个问题,描述如下:
java 中有两个类,其中一个类中有一个变量是另一个类的类型,如下:
public class MyClass {// 假设此类在com.test.a中
private InnerMyClass inclass;
private String name;
// ... getters and setters
}
public class InnerMyClass {// 假设此类在com.test.b中
private String aValue;
// ... getters and setters
}
这样,如果想通过BlazeDS实现Flex和java的对象传递,必须在Flex中同样写两个类:
// 假设两个类不在一个包中
package a.vo{
[Bindable]
[RemoteClass(alias="com.test.a.MyClass")]
public class MyClass {
private InnerMyClass inclass;
private String name;
// ... getters and setters
}
// ...
}
package b.vo{
[Bindable]
[RemoteClass(alias="com.test.b.InnerMyClass")]
public class InnerMyClass {
private String aValue;
// ... getters and setters
}
// ...
}
但是,这样写编译器就会报错了,很简单,原因是MyClass没有引入InnerMyClass,为了不报错,我们通常情况下会这么做:
修改MyClass为:
package a.vo{
[Bindable]
[RemoteClass(alias="com.test.a.MyClass")]
import b.vo.InnerMyClass;// 加了这句话
public class MyClass {
private InnerMyClass inclass;
private String name;
// ... getters and setters
}
// ...
}
这样我们就向后台传值,但是后台取到的是什么对象呢?
是不是MyClass呢?
-- 很遗憾的告诉大家,不是。
那是什么呢?
-- HashMap。
为什么会是这样呢?
-- 这个请参阅BlazeDS的官方文档。
我们应该怎么做才能让后台取到的是一个MyClass对象呢?
-- 像下面似的把MyClass改为:
package a.vo{
[Bindable]
[RemoteClass(alias="com.test.a.MyClass")]
// import b.vo.InnerMyClass;// 去掉这句话
public class MyClass {
private b.vo.InnerMyClass inclass; // 在此处加上对InnerMyClass 的引用
private String name;
// ... getters and setters
}
// ...
}
这样java端就能取到MyClass的对象了。
至于为什么加上import就取不到MyClass对象,这个我还没研究出来,期待大家探讨。
分享到:
相关推荐
总结来说,使用BlazeDS实现Java和Flex通信的关键步骤包括:安装和配置JDK和Tomcat、部署BlazeDS war文件、在Eclipse中创建Flex项目并与BlazeDS集成、配置安全性和数据交换机制。通过这种方式,开发者能够构建出既...
最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的...
5. **数据交换**:BlazeDS的AMF协议可以将Java对象透明地转换为Flex可以理解的格式,反之亦然,从而实现数据的双向交换。 三、关键技术 1. **AMF**:AMF是一种二进制的序列化格式,它比XML或JSON更高效,更适合于...
在IT行业中,BlazeDS是一个重要的中间件,它允许Java应用程序与Adobe Flex客户端进行实时的双向通信。这个“使用BlazeDS实现Java和Flex通信之hello world”示例旨在介绍如何通过BlazeDS来实现简单但关键的客户端-...
本文将深入探讨如何使用BlazeDS来实现Java和Flex之间的通信,以及这个过程中涉及的关键技术和实践步骤。 1. **BlazeDS概述** BlazeDS是基于AMF(Action Message Format)协议的轻量级中间件,它可以提供实时的、低...
### 使用BlazeDS实现Java与Flex通信的关键知识点 #### 一、引言 随着Web技术的发展,前后端的通信方式也变得越来越多样化。其中,Flex作为一种流行的应用开发框架,经常被用于构建丰富的互联网应用程序(RIA)。...
Flex + BlazeDS + Java 后台分页的实现是一个关键的技术环节,特别是在开发大型Web应用程序时,为了提高用户体验和系统性能,数据通常需要通过分页的方式进行加载。本方案主要探讨了如何在Flex前端和BlazeDS中间件与...
在"BlazeDS实现java后台消息推送flex前台接收的例子"中,我们主要关注以下几个关键知识点: 1. **BlazeDS架构**:BlazeDS包含了一组服务,如Remoting服务、LiveCycle Data Services(LCDS)以及MessageBroker服务。...
【Flex Spring JAVA BLAZEDS整合】是一种技术实践,它将Adobe Flex的前端展示层与Spring框架的后端业务逻辑层紧密结合,利用BlazeDS作为中间件进行数据传输。Flex作为一个强大的RIA(富互联网应用程序)开发平台,常...
在代码示例中,我们看到一个名为`HelloWorld`的Java类,它有一个名为`sayHelloWorld`的方法,接收一个字符串参数并返回一个包含问候语的字符串。这个方法将在Flex客户端被调用,以展示Flex与Java之间的交互。 在...
BlazeDS 是一款开源的服务器端软件,它主要用于在客户端的 Flex 或 Adobe AIR 应用程序与服务器端的 Java 对象之间实现数据交互。通过 BlazeDS,你可以方便地调用 Java 对象的方法,并且它还提供了远程调用...
在本文中,我们将深入探讨如何使用BlazeDS实现Flex与Java之间的通信,以及其核心功能和工作原理。 1. **Remoting服务** BlazeDS的Remoting服务允许Flex客户端直接调用Java后端的远程方法,仿佛这些方法是本地的。...
本文介绍了基于BlazeDS技术在股票系统中解决Flex前台与Java后台之间的通信问题,并以股票系统中的算法调用为例,展示了BlazeDS的具体配置方法和实现细节。 一、 Flex技术概述 Flex是一种高效、免费的开源框架,也...