准备:
1、下载blazeds 4.x,下载地址:http://download.macromedia.com/pub/livecycle/blazeds/4_0/blazeds-bin-4.0.0.14931.zip
2、部署blazeds至tomcat,访问http://localhost:8080/blazeds/messagebroker/amf,显示空白页,则部署成功
整合:
====================服务端开发========================================
1、建立一测试Service:
public class GuestListService implements Serializable, IGuestListService {
private static final long serialVersionUID = 3552207441192189726L;
public List<Guest> getGuestList() {
List<Guest> guestList = new ArrayList<Guest>();
guestList.add(new Guest("Guest One"));
guestList.add(new Guest("Guest Two"));
guestList.add(new Guest("Guest Three"));
guestList.add(new Guest("Guest Four"));
return guestList;
}
}
2、配置bean:在blazeds/WEB-INF/下新建applicationContext.xml文件,添加
<beans>
<bean id="guestListService" class="com.sky.flexonspring.services.GuestListService" />
</beans>
3、修改web.xml文件,添加spring支持
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
4、打开blazeds/WEB-INF/flex/services-config.xml,添加
<factories>
<factory id="spring" class="com.sky.flexonspring.factories.SpringFactory" />
</factories>
使得flex的bean对象创建交由spring负责
SpringFactory类的代码如下:
package com.sky.flexonspring.factories;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import flex.messaging.FactoryInstance;
import flex.messaging.FlexFactory;
import flex.messaging.config.ConfigMap;
import flex.messaging.services.ServiceException;
/**
* This interface is implemented by factory components which provide instances
* to the flex messaging framework.
*
* @author Jeff Vroom
*/
public class SpringFactory implements FlexFactory {
private static final String SOURCE = "source";
/**
* This method can be used to initialize the factory itself. It is called
* with configuration parameters from the factory tag which defines the id
* of the factory.
*/
public void initialize(String id, ConfigMap configMap) {
}
/**
* This method is called when we initialize the definition of an instance
* which will be looked up by this factory. It should validate that the
* properties supplied are valid to define an instance. Any valid properties
* used for this configuration must be accessed to avoid warnings about
* unused configuration elements. If your factory is only used for
* application scoped components, this method can simply return a factory
* instance which delegates the creation of the component to the
* FactoryInstance's lookup method.
*/
public FactoryInstance createFactoryInstance(String id, ConfigMap properties) {
SpringFactoryInstance instance = new SpringFactoryInstance(this, id,
properties);
instance.setSource(properties.getPropertyAsString(SOURCE,
instance.getId()));
return instance;
} // end method createFactoryInstance()
/**
* Returns the instance specified by the source and properties arguments.
* For the factory, this may mean constructing a new instance, optionally
* registering it in some other name space such as the session or JNDI, and
* then returning it or it may mean creating a new instance and returning
* it. This method is called for each request to operate on the given item
* by the system so it should be relatively efficient.
* <p>
* If your factory does not support the scope property, it report an error
* if scope is supplied in the properties for this instance.
*/
public Object lookup(FactoryInstance inst) {
SpringFactoryInstance factoryInstance = (SpringFactoryInstance) inst;
return factoryInstance.lookup();
}
static class SpringFactoryInstance extends FactoryInstance {
SpringFactoryInstance(SpringFactory factory, String id,
ConfigMap properties) {
super(factory, id, properties);
}
public String toString() {
return "SpringFactory instance for id =" + getId() + " source="
+ getSource() + " scope=" + getScope();
}
public Object lookup() {
ApplicationContext appContext = WebApplicationContextUtils
.getWebApplicationContext(flex.messaging.FlexContext
.getServletConfig().getServletContext());
String beanName = getSource();
try {
return appContext.getBean(beanName);
} catch (NoSuchBeanDefinitionException nexc) {
ServiceException e = new ServiceException();
String msg = "Spring service named '" + beanName
+ "' does not exist.";
e.setMessage(msg);
e.setRootCause(nexc);
e.setDetails(msg);
e.setCode("Server.Processing");
throw e;
} catch (BeansException bexc) {
ServiceException e = new ServiceException();
String msg = "Unable to create Spring service named '"
+ beanName + "' ";
e.setMessage(msg);
e.setRootCause(bexc);
e.setDetails(msg);
e.setCode("Server.Processing");
throw e;
}
}
}
}
5、将service公开,提供flex客户端调用:打开blazeds/WEB-INF/flex/remoting-config.xml,增加如下配置
<destination id="guestListService">
<properties>
<factory>spring</factory>
<source>guestListService</source>
</properties>
</destination>
至此,服务端整合、开发完毕
====================客户端开发========================================
1、新建flex应用程序,添加remoteObject调用:
<mx:RemoteObject id="ro"
destination="guestListService"
endpoint="http://localhost:8080/blazeds/messagebroker/amf"
result="resultHandler(event)"
fault="faultHandler(event)"/>
注意这边的guestListService整合就是与remoting-config.xml中配置的destination的id保持一致
ro.getGuestList()
这段代码调用就得到调用
GuestListService.getGuestList()
后的List<Guest> 列表
private function resultHandler(event:ResultEvent):void
{
guestListDP = ArrayCollection(event.result);
}
至此客户端就得到了服务器端的数据了,下面就是根据业务自由处理了。
效果图:
- 大小: 20.8 KB
分享到:
相关推荐
NULL 博文链接:https://depravedangel.iteye.com/blog/883636
Flex技术本身和Java就有很强的关联性,它提供了一个基于Eclipse的IDE和BlazeDS.BlazeDS是个基于服务端的Java远程调用和Web消息的一个开源的技术。...在2008年末,Spring社区已经着手Spring BlazeDS整合的项目。
Flex Spring BlazeDS整个web工程,其中FlexServer是整合后的myeclipse web project工程,FlexText是Flex测试工程。在tomcat中运行测试无误。
Flex Spring JAVA BLAZEDS整合,永固整合将flex与Spring整合
使用flex 4.5 + Spring 3.0 + Hibernate 3.3 + Cairngorm 2.2.1 + BlazeDS 3.3.0 + Spring BlazeDS Integration 1.0.3整合出的一个登录的小demo·
Flex PureMVC Flex BlazeDS Spring Hibernate 整合 里面一些图标是包双击可查看源代码
讲述flex4与java开发的技术,具体用到了flex,spring讲bean暴露给blazeds框架,达到前台与服务器的通信!
NULL 博文链接:https://madfroghe.iteye.com/blog/935337
spring+blazeDS+flex4整合的例子,项目可以直接运行,jar包都齐全 模拟数据库返回的list 在页面上 输出
把spring整合其它框架的方法的配置放在spring文件夹中。 很有条理 用remoteObject做的helloWorld。 适合新手入门和老手改用spring3来做项目。 如要交流可以加我:48724810 by焚香槟榔...2010/12/18
前言:本讲是在【第四讲:WEB项目-集成Flex3+BlazeDS3.2+Spring2.5.6+iBatis2.3.4】的基础上添加iBatis,此次集成其实质是Spring与Struts2的整合而已 目标:WEB项目-集成Flex3+BlazeDS3.2+Spring2.5.6+iBatis2.3.4+...
flex页面源码 博文链接:https://jhaij.iteye.com/blog/832478
前言:本讲是继【第三讲:WEB项目-集成Flex3+BlazeDS3.2+Spring2.5.6】后,介绍另外一种集成方式; 集成方式二:采用Spring侦听配置模式 目标:实现集成方式二 优点: 1、一个应用可以满足多种请求 2、易于集成...
Flex4+BlazeDS+Spring+Hibernate 整合源码博文源码
flex+java+spring+hibernate+blazeds整合
Flex4+Blazeds4.0+Spring3.0+hibernate2.5.2整合笔记,自己看了不少网上所说,都没配置成功,后来通过spring的一个插件搞定了,希望对大家有帮助吧!
分步骤搭建整合流行开发框架 整合了Flex+BlazeDS+Spring+iBatis+Cairngorm+pureMVC 迅速进入开发环境
前言:本讲是在【第三讲:WEB项目-集成Flex3+BlazeDS3.2+Spring2.5.6】方式二的基础上添加iBatis,此次集成其实质是Spring与iBatis的整合而已 目标:WEB项目-集成Flex3+BlazeDS3.2+Spring2.5.6+iBatis2.3.4 再需...