- 浏览: 111401 次
最新评论
-
u012273744:
很不错
MySQL存储过程学习 -
neusoft_jerry:
neusoft_jerry 写道上传代码要负责,起码自己运行一 ...
Flex消息例子(Producer和Consumer) -
neusoft_jerry:
上传代码要负责,起码自己运行一下,明显错误就上传,是对他人的不 ...
Flex消息例子(Producer和Consumer) -
jd2bs:
介绍挺详细的 改天试试看
MySQL存储过程学习
BlazeDS中包含了AMF 的 Java 实现,可以用来与服务器端的Java对象远程交互,也可以用来在客户端之间传递消息。开发人员可以借助 BlazeDS 的远程技术简单地调用 POJO、Spring 服务或EJB方法。开发人员可以通过其消息系统从客户端向服务器端发送消息,当然也可从服务器端向客户端发送消息。
BlazeDS 也可以与其他一些消息系统结合使用,比如JMS、ActiveMQ。由于其远程技术与消息系统采用的方式是在 HTTP 协议上传输 AMF 数据,BlazeDS 因此在性能上拥有很大优势,同时也避免了额外的数据抽象层的处理工作。BlazeDS 在很多基于 Java 的应用服务器环境下都能正常工作,这些服务器包括 Tomcat、WebSphere、WebLogic、JBoss 以及 ColdFusion。此外,无论是 web(在 Flash Player 中运行)还是桌面(在Adobe AIR下运行)的 Flex 应用程序中,BlazeDS 的使用都很简单。
一个BlazeDS 应用包括两个部分:一个客户端应用程序和一个服务端的J2EE 程序。
【客户端程序】
BlazeDS 客户端程序通常是一个Flex 或AIR 应用程序。Flex 和AIR 程序使用Flex 组件和BlazeDS 服务器通讯,包括RemoteObject,HTTPService,WebService,Producer 和Consumer组件,HTTPService, WebService,,Producer 和Consumer 组件都是Flex SDK 的一部分。
尽管通常使用Flex 或AIR 开发客户端程序,但也可联合使用Flex,HTML,JavaScript技术。或者用HTML 和JavaScript 通过Ajax client library 与BlazeDS 通讯。
【BlazeDS 服务端】
BlazeDS 服务端运行在J2EE 应用服务器上的WEB 应用中。BlazeDS 包含三个预定义的web 应用,可以作为开发自定义应用的基础。
为现存的J2EE web 应用配置BlazeDS 支持,执行以下步骤:
-
把BlazeDS 及其依赖的jar 包拷贝到WEB-INF/lib 下。
-
修改WEB-INF/flex 目录下有关BlazeDS的配置文件。
-
在WEB-INF/web.xml 文件中定义MessageBrokerServlet 和一个session listener。
BlazeDS 核心功能包括RPC Services 和Messaging Service。
下面开始一个简单的例子:
1.在Eclipse中新建一个Web工程"FlexAndJava_Server"。新建包并命名为"com.hebut.java",然后新建一个HelloWorld类。
HelloWorld.Java的内容如下所示:
package com.hebut.java;
public class HelloWorld
{
public String getInfo(String info)
{
return "服务器:"+info;
}
}
HelloWorld类的内容很简单,通过定义一个getInfo方法接收外部参数,返回字符串"服务器:"与外部参数连接的字符串。Flex客户端调用这个方法获得返回结果。
2.解压缩"blazeds.war"文件,将解压后的WEN-INF目录复制到Web工程的WebRoot目录下(覆盖原来的WEB-INF目录)。以记事本格式打开"WebRoot\WEB-INF\flex\"目录下的"remoting-config.xml"文件,在文件中定义一个远程服务,这样Flex应用程序才能调用这个远程服务。
在<services>节点下加入<destination>元素,定义一个服务目标,程序如下所示:
id属性用于定义Flex应用程序可以访问的服务目标,source属性定义该目标所指向的类。这里HelloWorld即代表"com.hebut.java.HelloWorld"类。 至此,服务器端的程序已经开发完成,部署到Tomcat服务器目录中,并启动Tomcat。 <?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service"
class="flex.messaging.services.RemotingService">
<adapters>
<adapter-definition id="java-object"
class="flex.messaging.services.remoting.adapters.JavaAdapter"
default="true"/>
</adapters>
<default-channels>
<channel ref="my-amf"/>
</default-channels>
<destination id="HelloWorld">
<properties>
<source>com.hebut.java.HelloWorld</source>
</properties>
</destination>
</service>
在Flex中,实现AMF-RPC应用要通过<mx:RemoteObject>组件完成,使用该组件可以访问应用服务器上的类。定义格式如下:
destination属性指定服务的目标,该属性的值一定要和Java工程的"remoting-config.xml"中的destination的id一样(安装BlazeDS后添加的那一段)。 (1)endpoint:可使开发人员在编译或以编程方式创建ChannelSet时快速指定RemoteObject目标的端点,而无须引用服务配置文件。在实现Java平台下的AMF-RPC应用时,该属性的值指定的格式为"/Java工程名/messagebroker/amf"。 (2)concurrency:指示如何处理对同一服务的多个调用的值,默认值为multiple,表示不取消现有请求,由开发人员负责通过管理事件流确保返回数据的一致性。其他有效值有single(每次只允许在此方法中发出一个请求);last(发出请求可导致客户端忽略任何当前未处理请求的结果或错误)。 (3)requestTimeout:提供对已发送消息的请求超时(以秒为单位)的访问。 (4) showBusyCursor:如果值为true,则在执行服务时显示忙状态光标,默认值为false。 <fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<s:RemoteObject id="组件ID" destination="服务目标" 属性="属性值" >
</s:RemoteObject>
</fx:Declarations>
3.新建一个Flex项目,名称为"FlexAndJava_Client"。单击"下一步"按钮设置应用程序类型为Java,程序的输出目录为Web应用程序目录,"根文件夹"设为Tomcat服务器下的文件夹。
Flex程序代码如下:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955"
minHeight="600">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
protected function btnSend_clickHandler(event:MouseEvent):void
{
agent.getInfo(txtSend.text);
}
protected function agent_resultHandler(event:ResultEvent):void
{
txtReceive.text=event.result as String;
}
protected function agent_faultHandler(event:FaultEvent):void
{
Alert.show("失败信息"+event.message.toString());
}
protected function btnClear_clickHandler(event:MouseEvent):void
{
txtSend.text="";
txtReceive.text="";
}
]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<mx:RemoteObject id="agent" destination="HelloWorld"
result="agent_resultHandler(event)"
fault="agent_faultHandler(event)">
</mx:RemoteObject>
</fx:Declarations>
<s:Panel x="56" y="129" width="250" height="200" title="客户发送端">
<s:Button id="btnSend" x="146" y="129" label="发送"
click="btnSend_clickHandler(event)"/>
<s:TextArea id="txtSend" x="8" y="11" width="232" height="106"/>
<s:Button id="btnClear" x="37" y="130" label="清空"
click="btnClear_clickHandler(event)"/>
</s:Panel>
<s:Panel x="390" y="129" width="250" height="200" title="客户接收端">
<s:TextArea id="txtReceive" x="10" y="10" width="228"/>
</s:Panel>
</s:Application>
发表评论
-
Flex4 ButtonBar设置图标及获取选中对象
2012-07-06 16:56 2861不多说,直接上代码 <?xml version ... -
ActionScript的arguments 对象和...(rest) 参数
2012-06-21 17:34 1146arguments 对象 在将参数传递 ... -
ActionScript循环
2012-06-20 11:11 864循环语句允 ... -
ActionScript常量
2012-06-20 10:53 985ActionScript 3.0 支持 ... -
ActionScript3 数据类型
2012-06-20 10:23 890ActionScript 基元数据类型包括 B ... -
ActionScript动态类
2012-06-20 10:01 1046“动态”类定 ... -
ActionScript中的is类型和as类型
2012-06-20 09:49 1220is 运算符 is 运算符是 ActionScr ... -
Flex tree 定位
2012-06-08 15:44 14761. 数据源为Object // tree上选择到网元 ... -
ArrayList转XML
2012-06-08 14:21 2200//ArrayList转换为xml var treedata ... -
Flex自定义Tree图标
2012-06-08 11:29 18571.数据源为xml <?xml version=&qu ... -
Flex特效
2012-06-06 10:51 1220这里面有许多特效很酷,希望对大家有帮助。 1.旋转 效果:ht ... -
Flex消息例子(Producer和Consumer)
2012-05-30 17:02 7520不多说,直接上代码,关于Flex消息的信息详见Fl ... -
flex消息服务
2012-05-25 13:54 29491, 初识消息服务: 相关概念: 消息(messa ... -
Cairngorm框架
2012-05-25 09:31 2654Cairngorm是由adobe公司推出的一个轻量级的 ... -
Flex效果
2012-04-18 16:50 10051.旋转 效果:http://www.alex-uhlmann ... -
Flex4 <s:DataGrid> 的用法
2012-04-11 15:01 16715Flex4中的s:DataGrid与Flex3的mx:Data ... -
Flex多选框的实现
2012-04-06 15:41 36711. 现在界面上放一个容器,如BorderContainer ... -
关于Flash/Flex如何引用父容器,根容器
2012-04-06 14:26 2671flash 中主要是 parent,r ... -
Flex tree 节点递归查找,并且选择该节点
2012-04-06 13:50 3142private function treeLoca ... -
Flex Tree节点的展开与收缩
2012-04-06 13:40 4569<?xml version="1.0&q ...
相关推荐
BlazeDS是Adobe公司推出的一款开源的服务器端技术,它主要的作用是为Flex客户端与Java后端应用提供数据集成和实时通信。BlazeDS通过AMF(Action Message Format)协议,实现了高性能、低延迟的数据传输,使得Flex...
Blazeds是Adobe官方的Flex和Java集成层,它提供了基于AMF(Action Message Format)的高效数据传输协议,使得客户端和服务器之间的数据交换变得简单且快速。Blazeds包含一套全面的组件和服务,包括Remoting、...
6. **现有系统对接**:在现有系统中集成Flex和Blazeds,需要考虑如何平滑过渡,避免对已有业务流程造成影响。这可能涉及到数据模型的转换、API的兼容性、权限控制的整合等方面的工作。 7. **扩展Flex功能**:利用...
BlazeDS、Flex和Tomcat是Java服务器端与富互联网应用程序(RIA)客户端之间通信的重要技术组合。在J2EE环境中,这种集成提供了一种高效、动态的方式,以实现数据的实时双向传输,增强了Web应用的用户体验。下面将详细...
在本文中,我们将深入探讨如何使用BlazeDS实现Flex与Java之间的通信,以及其核心功能和工作原理。 1. **Remoting服务** BlazeDS的Remoting服务允许Flex客户端直接调用Java后端的远程方法,仿佛这些方法是本地的。...
4. **FLEX与Java的集成**: BlazeDS使得Flex和Java能够无缝集成。在客户端,Flex应用可以通过BlazeDS调用Java服务,获取或更新服务器上的数据。在服务器端,Java方法可以被暴露为Flex可以调用的服务。 5. **配置...
Flex、BlazeDS 和 Java 的组合为企业级Web应用提供了强大的支持,尤其对于需要高性能和丰富用户界面的应用场景来说更为突出。 - **提高开发效率**:Flex 采用 CS(客户端/服务器)架构,可以显著加快开发速度,减少...
BlazeDS 是一款开源的服务器端技术,由 Adobe 提供,主要用于实现 Java 应用程序与 Flex 客户端之间的通信。它利用 AMF(Action Message Format)协议,这是一种二进制格式,相比基于文本的协议如 XML,AMF 提供了更...
2. **Blazeds集成**:将Blazeds的库文件添加到Java项目,并将WAR文件部署到服务器。 3. **Flex配置**:在Flex项目中,配置RemoteObject或HTTPService来调用Java服务。 4. **安全考虑**:由于Blazeds允许跨域通信,...
3. **服务集成**:BlazeDS可轻松集成Java后端服务,如Spring、Hibernate等,为Flex应用提供数据访问层。 4. **数据管理和状态控制**:通过BlazeDS,Flex应用可以管理复杂的数据结构和用户会话状态,实现高效的业务...
Spring社区在2008年末启动了Spring BlazeDS集成项目,目标是使Java和Spring更好地支持Flex。在默认情况下,BlazeDS会为每个远程对象请求创建一个服务器端Java对象的实例,但这与Spring的依赖注入不兼容,因为Spring...
不过,随着技术的发展,Adobe已将重点转向了Adobe Animate和开放源码的Apache Flex,Blazeds在新的开发环境中可能逐渐被替代,但其在Flex和Java集成领域的贡献不容忽视。 总之,Blazeds为Flex和Java之间的数据交互...
在配置Flex与Java通过BlazeDS进行交互的环境中,首先我们需要准备的是MyEclipse 8.5集成开发环境,这是开发Flex和Java项目的常用工具。为了在MyEclipse中支持Flex开发,我们需要安装Adobe Flash Builder插件。这个...
BlazeDS是Adobe公司推出的一个开源项目,专门用于实现Flex和Java之间的数据通信,它充当了两者之间的桥梁。 BlazeDS是基于Java Servlet的服务器端组件,它可以轻松地集成到Java EE应用服务器中,如Tomcat、Jetty等...
综上所述,Flex BlazeDS Java项目涉及到前端UI设计、后端服务开发、数据交互、事件处理等多个方面的技术,对于希望学习和掌握Flex与Java集成开发的开发者来说,是一个很好的实践案例。通过深入研究该项目的源码,...