BlazeDS指的是flex程序中通过RemoteObject方式(amf)进行数据传输的一系列控件与服务器端程序(例如java)中一系列
第三方jar包一起组成的数据交互框架。通过这种方式,我们可以直接将java中数据模型直接映射到flex程序中,省略了交互过程中解析对象的步骤。
一.客户端配置:
1.使用flex builder
的
实现
方式
:
在flex builder中服务器构建方式中选择j2ee的BlazeDS,指定服务器端services-config.xml所在的目录,根url路径和上下文访问路径。
编译完成后flex的编译参数里会附加services-config.xml路径地址。这种方式需要客户端和服务器端放在一台服务器上,客户端程
序会先去读取服务上的services-config.xml配置文件,无法解决分布式部署的问题,也增加了程序的耦合性,所以我个人不推荐这种方式。
2.不耦合IDE的
实现
方式:
(1)
定义AMF通道,需要跟services-config.xml中的一致(要注意的是如果url写成localhost,其他用户访问时会有沙箱冲突的问题)
public static const _AmfChannel : AMFChannel = new AMFChannel("amf","http://192.168.1.200:80/messagebroker/amf");
(2)
往amfChannelSet中添加AmfChannel,通过注册了amfChannelSet的RemoteObject获取AbstractOperation ,
添加事件监听,然后发送
var remoteService:RemoteObject=new RemoteObject(“serverName”);
var amfChannelSet : ChannelSet = new ChannelSet;
amfChannelSet.addChannel(_AmfChannel);
remoteService.channelSet = amfChannelSet;
var op : AbstractOperation = remoteService.getOperation(“functionName”);
op.addEventListener(ResultEvent.RESULT,doCallBack);
op.addEventListener(FaultEvent.FAULT,faultCallBack);
op.send(“parameters”);
通过这种方式无需验证services-config.xml,但是否发送成功仍需取决于services-config.xml中配置的channel和destination
二.服务器端配置(以整合spring3.0为例)
spring和flex的整合是spring项目组下顶级子项目之一,但由于中文资料较少,网上流传的方法大多没有使用到org.springframework.flex.jar。两种方式都需要spring3.0和BlazeDS的几个jar包,在这就不累述了。
以下是两种实现方式:
1.不使用org.springframework.flex.jar的方式
(1)在web.xml中配置servlet
<servlet>
<servlet-name>MessageBrokerServlet</servlet-name>
<servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
<init-param>
<param-name>services.configuration.file</param-name>
<param-value>/WEB-INF/flex/services-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MessageBrokerServlet</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
(2)在services-config.xml注册数据通道
<channels>
<channel-definition id="my-amf"
class="mx.messaging.channels.AMFChannel">
<endpoint
url="http://127.0.0.1/messagebroker/amf"
class="flex.messaging.endpoints.AMFEndpoint" />
</channel-definition>
<channels>
(3)在services-config.xml中配置factory
springFactory需要继承FlexFactory,重写lookup方法,在lookup方法里通过srping的ApplicationContext去查找对应的bean以加载spring容器。
<factories>
<factory id="springFactory" class="com.zb.base.factory.SpringFactory" />
</factories>
(4)services-config.xml中加载remoting-config.xml
remoting-config.xml文件
在这里serviceName既是你前台访问的serviceName,beanName既是spring容器里beanName
你可以重写flex.messaging.services.remoting.adapters.JavaAdapter以实现中央控制器的功能
这样你就可以通过前台传入serviceName访问到对应的bean,通过functionName访问到对应的方法
<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="serviceName">
<properties>
<factory>springFactory</factory>
<source>beanName</source>
</properties>
</destination>
</service>
2.使用org.springframework.flex.jar的方式
(1)配置web.xml
载入spring配置文件
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:conf/spring/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
//spring mvc的servlet
<servlet>
<servlet-name>MessageBrokerServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:conf/spring/flex-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MessageBrokerServlet</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
(2)配置flex-servlet.xml
这是一个spring mvc中的sevlet,其中指明了services-config.xml路径
javaAdapter既是上文中的中央控制器
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:flex="http://www.springframework.org/schema/flex"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/flex
http://www.springframework.org/schema/flex/spring-flex-1.0.xsd">
<flex:message-broker services-config-path="classpath*:conf/flex/services-config.xml">
</flex:message-broker>
<bean id="javaAdapter" class="org.springframework.flex.core.ManageableComponentFactoryBean">
<constructor-arg value="flex.messaging.services.remoting.adapters.JavaAdapter" />
</bean>
</beans>
(3)
services-config.xml与上文中基本一样,不过由于已经载入spirng的环境,所以不需要springFactory了,也不需要引入remoting-config.xml,因为所有的destination定义都可通过下文的注解方式实现。
(4)
这里使用spring3.0中的注解方式实现,前台可以通过serviceName访问到exampleService
3.使用ide查看定义的destination
(1)
在不使用spring提供的jar情况下,由于前台flex需要读取后台的remoting-config.xml配置文件,所以ide例如flex
builder能通过查看数据源看到remoting-config.xml中定义的destination,但仍需在web.xml中添加如下配置。
(2)
在使用spring提供的jar情况下,由于destination动态存在于spring的容器中,前台无法直接获取,所以无法查看到destination
分享到:
相关推荐
通常,JAVA与FLEX通过BlazeDS的整合需要在`remote-config.xml`中为每个RemoteObject配置destination。但通过`SpringRemotingDestinationBootstrapService`,我们可以自动导出带有@Service注解且名称以“FlexService...
BlazeDS通过AMF(Action Message Format)协议,实现了高性能、低延迟的数据传输,使得Flex前端可以高效地与Java后端进行交互。在本文中,我们将深入探讨如何使用BlazeDS来整合Flex和Java,以及在这个过程中可能遇到...
标题中的“Flex-Spring-JAVA-BLAZEDS.rar”提到了三个关键技术:Flex、Spring和BlazeDS,这在IT行业中是关于前端与后端交互的重要技术组合。Flex是Adobe开发的一种用于创建富互联网应用(RIA)的开源框架,主要用于...
在实际开发中,你可以按照以下步骤来利用Blazeds实现Flex与Java的交互: 1. 配置Blazeds:在Java服务器上部署Blazeds服务,并配置相应的服务端点。 2. 创建Flex客户端:使用Flex Builder或Flash Builder创建Flex...
通过这个实例,开发者可以学习到如何结合Flex、Java和BlazeDS构建一个完整的前后端交互的Web应用,掌握客户端与服务器的通信机制,以及如何利用这些技术提升用户体验和应用性能。同时,这也是一个很好的起点,为...
通过以上步骤,我们就建立了一个基础的Flex+Java+BlazeDS开发环境,使得Flex客户端能够通过AMF与Java服务端进行高效的数据交换。这种架构广泛应用于需要动态用户界面和实时数据交互的应用场景,例如企业级的Web应用...
在"flex-spring-blazeds demo"项目中,Flex被用来创建交互式的前端界面,通过BlazeDS与后端Spring服务进行数据交换。 BlazeDS是Flex与Java应用之间的桥梁,它提供了一组基于HTTP和AMF(Action Message Format)的...
标题“flex+blazeds+spring”表明我们要探讨的是如何将Flex前端与BlazeDS中继层和Spring后端框架结合起来,实现完整的数据交互和应用程序逻辑。 在Flex与Spring集成的环境中,Flex作为用户界面展示层,负责与用户...
以上步骤完成后,Flex 客户端可以通过 BlazeDS 调用 Java(Spring)服务,实现数据交互。这种集成方式使得 Flex UI 可以利用 Java 后端的强大功能,同时保持客户端的轻量化和交互性。在整个过程中,需要注意的是,...
它允许Flex应用程序通过HTTP和AMF(Action Message Format)与Spring等Java应用服务器进行交互,实现了富互联网应用程序(RIA)的数据推送功能。在本主题“BlazeDS整合Spring实现增删改查”中,我们将深入探讨如何...
BlazeDS是Adobe提供的开源服务器端技术,它允许Flex客户端与Java服务器进行双向通信,实现了数据的实时同步。 首先,让我们详细了解Flex 4.6。这一版本引入了新的Spark组件模型,提供更美观、可自定义的UI组件,...
本文将详细讲解如何整合Flex、Java、Spring、Hibernate以及BlazeDS,打造一套完整的前后端交互解决方案。 一、Flex概述 Flex是由Adobe公司推出的用于创建富互联网应用程序的开源框架,基于ActionScript编程语言和...
综合以上技术,本项目通过Flex 4.6构建美观且交互性强的前端,BlazeDS负责与Spring 3后端的通信,Spring 3协调业务逻辑,JPA和Hibernate实现数据持久化,而MySQL作为存储层。这种技术组合为在线书店提供了一个高效、...
标题"flex 和 java交互"指出了一个关键的技术融合,即Flex与Java的整合,允许Flex前端与Java后端进行数据和功能的通信。这种交互通常是通过AMF(Action Message Format)协议实现的,它提供了一种高效的数据序列化...
在本文中,我们将深入探讨如何使用BlazeDS实现Flex与Java之间的通信,以及其核心功能和工作原理。 1. **Remoting服务** BlazeDS的Remoting服务允许Flex客户端直接调用Java后端的远程方法,仿佛这些方法是本地的。...
本文将详细介绍如何在Flex4环境中,利用Spring管理Java后端Bean,并通过BlazeDS实现Flex与服务器间的通信。 首先,我们需要理解Flex4、Spring和BlazeDS各自的角色。Flex4是Flash Builder中的一个组件,它提供了一套...
标题中的“flex与java交互的中间介质Blazeds”主要涉及到以下几个核心知识点: 1. Flex:Flex是Adobe开发的一种用于构建RIA的框架,它基于ActionScript编程语言和开放源代码的Flex SDK。Flex可以创建美观、互动性强...
本教程将深入探讨Flex与Java的三种交互方式,帮助开发者更好地理解和实现跨平台的Web应用。 1. AMF(Action Message Format)交互: AMF是Adobe提供的二进制数据格式,它能高效地传输对象,特别适合于Flex和Java...
标题中的“flex+spring+blazeds消息推送”是指在开发富互联网应用程序(RIA)时,采用Adobe Flex作为前端UI框架,Spring作为后端服务层框架,BlazeDS作为数据通信中间件,实现服务器到客户端的消息实时推送功能。...