当前位置: 网学 > 编程文档 > JAVA > 正文

将 Flex 集成到 Java EE 应用程序的最佳实践

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/08/05
web.xml 中添加 HttpFlexSession 和 Servlet 映射。HttpFlexSession 是 BlazeDS 提供的一个 Listener,负责监听 Flex 远程调用请求,并进行一些初始化设置:

清单 4. 定义 Flex Listener
 <listener>     <listener-class>flex.messaging.HttpFlexSession</listener-class> </listener> 

MessageBrokerServlet 是真正处理 Flex 远程调用请求的 Servlet,我们需要将其映射到指定的 URL:

清单 5. 定义 Flex servlet
 <servlet>     <servlet-name>messageBroker</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>0</load-on-startup> </servlet> <servlet-mapping>     <servlet-name>messageBroker</servlet-name>     <url-pattern>/messagebroker/*</url-pattern> </servlet-mapping> 

BlazeDS 所需的所有配置文件均放在 /WEB-INF/flex/ 目录下。BlazeDS 将读取 services-config.xml 配置文件,该配置文件又引用了 remoting-config.xml、proxy-config.xml 和 messaging-config.xml 这 3 个配置文件,所以,一共需要 4 个配置文件。

由于 BlazeDS 需要将 Java 接口 FlexService 暴露给 Flex 前端,因此,我们在配置文件 remoting-config.xml 中将 FlexService 接口声明为一个服务:

清单 6. 定义 flexService 服务
 <destination id="flexService">     <properties>         <source>org.expressme.employee.mgmt.flex.FlexServiceImpl</source>         <scope>application</scope>     </properties> </destination> 

服务名称通过 destination 的 id 属性指定,Flex 前端通过该服务名称来进行远程调用。scope 指定为 application,表示该对象是一个全局对象。

然而,按照默认的声明,BlazeDS 会去实例化 FlexService 对象。对于一个 Java EE 应用来说,通常这些服务对象都是被容器管理的(例如,Spring 容器或 EJB 容器),更合适的方法是查找该服务对象而非直接实例化。因此,需要告诉 BlazeDS 通过 Factory 来查找指定的 FlexService 对象,修改配置如下:

清单 7. 通过 factory 定义 flexService
 <destination id="flexService">     <properties>         <factory>flexFactory</factory>         <source>flexService</source>         <scope>application</scope>     </properties> </destination> 

现在,Flex 如何才能通过 BlazeDS 调用 FlexService 接口呢?由于 FlexService 对象已经被 Spring 管理,因此,我们需要编写一个 FlexFactory 告诉 BlazeDS 如何找到 Spring 管理的 FlexService 的实例。flexFactory 在 services-config.xml 中指定:

清单 8. 定义 flexFactory
 <factories>     <factory id="flexFactory" class="org.expressme.employee.mgmt.flex.FlexFactoryImpl"/> </factories> 

FlexFactoryImpl 实现了 FlexFactory 接口,该接口完成两件事情:

  1. 创建 FactoryInstance 对象;
  2. 通过 FactoryInstance 对象查找我们需要的 FlexService。

因此,需要一个 FactoryInstance 的实现类,我们编写一个 SpringFactoryInstance,以便从 Spring 的容

  • 上一篇资讯: Java与Flex通信
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号