Flex4 中使用Spring flex 來集成BlazeDS 進行遠程調用


原文:http://www.nomanland.net/2010/05/21/flex-series-guide-integration2/

 

Spring BlazeDS Integration 是什么?
Spring BlazeDS Integration 是 SpringSource 的開源項目,用於整合 Spring 與 BlazeDS。

為什么需要 Spring BlazeDS Integration?
正如“Flex4系列教程之六”介紹的:不使用 Spring BlazeDS Integration 同樣可以整合 Spring 與 BlazeDS。但這種整合方式不自然,需要額外維護一個 BlazeDS 配置文件,Spring BlazeDS Integration 會改善這種處境。

Spring BlazeDS Integration 需要的軟件環境:

  • Java 5 或更高
  • Spring 2.5.6 或更高
  • BlazeDS 3.2 或更高

Spring BlazeDS Integration 特征

  • MessageBroker(BlazeDS 的核心組件)被配置為 Spring 管理的 Bean
  • Flex 客戶端發出的 HTTP 消息通過 Spring 的 DispatcherServlet 路由給 MessageBroker
  • Remote objects 以 Spring 的annonation方式掃描托管在 Spring中
  • 開放RDS服務器。以方便FB4 的(數據/服務)功能菜單的使用

注意事項:


第一步:准備所需 jar 包
將以下 3 部分 jar 包拷貝到 sampleApp 項目的 lib 下

  1. Spring Framework
    org.springframework.aop-3.0.2.RELEASE.jar
    org.springframework.asm-3.0.2.RELEASE.jar
    org.springframework.beans-3.0.2.RELEASE.jar
    org.springframework.context-3.0.2.RELEASE.jar
    org.springframework.core-3.0.2.RELEASE.jar
    org.springframework.expression-3.0.2.RELEASE.jar
    org.springframework.web.servlet-3.0.2.RELEASE.jar
    org.springframework.web-3.0.2.RELEASE.jar
  2. Spring Framework dependencies
    org.aopalliance 內的 com.springsource.org.aopalliance-1.0.0.jar
    edu.emory.mathcs.backport 內的 com.springsource.edu.emory.mathcs.backport-3.0.0.jar
    net.sourceforge.cglib 內的 com.springsource.net.sf.cglib-2.2.0.jar
    [注:]Spring 3 的依賴包用Ivy 或 Maven 管理會很方便,完成本系列教程后我會單獨整理這部分。暫且手動拷貝吧 :)
  3. Spring BlazeDS Integration
    org.springframework.flex-1.5.0.CI-498.jar

第二步:修改 web.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app
id="WebApp_ID"
version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>zara</display-name>

<context-param>
<param-name>flex.class.path</param-name>
<param-value>/WEB-INF/flex/hotfixes,/WEB-INF/flex/jars</param-value>
</context-param>

<!-- Http Flex Session attribute and binding listener support -->
<listener>
<listener-class>flex.messaging.HttpFlexSession</listener-class>
</listener>


<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>



<!-- 定義spring 以及 spring flex 集成的配置 -->
<servlet>
<servlet-name>MessagebrokerServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/META-INF/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Map /spring/* requests to the DispatcherServlet -->
<servlet-mapping>
<servlet-name>MessagebrokerServlet</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
<!-- 定義spring 以及 spring flex 集成的配置 結束-->

<!-- 訪問RDS 定義開始-->
<servlet>
<servlet-name>RDSDispatchServlet</servlet-name>
<display-name>RDSDispatchServlet</display-name>
<servlet-class>flex.rds.server.servlet.FrontEndServlet</servlet-class>
<init-param>
<param-name>useAppserverSecurity</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>messageBrokerId</param-name>
<param-value>_messageBroker</param-value>
</init-param>
<load-on-startup>10</load-on-startup>
</servlet>
<servlet-mapping
id="RDS_DISPATCH_MAPPING">
<servlet-name>RDSDispatchServlet</servlet-name>
<url-pattern>/CFIDE/main/ide.cfm</url-pattern>
</servlet-mapping>
<!-- 訪問RDS 定義結束 -->

</web-app>

第三步:配置 web-application-config.xml

  1. 創建應用上下文配置文件 applicationContext.xml

 

 

第四步:配置 springFlex.xml

 

 

第五步:編寫后台Bean,使用標簽@RemotingDestination來透出接口,給flex client調用

 

 

 

注意:為了使用FB4 中的 (數據/服務)功能。在編輯器中可以訪問后端的java bean。

必須在建立項目的時候,先建立一個web項目,然后再加入flex project的性能的方法。使得這個項目具有web應用和flex應用2重性。

不能直接建立一個flex project 選中使用WTP整合java/flex的功能。否則在IDE下無法使用(數據/服務)菜單訪問后台的bean。

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com