Flex、Spring整合:Spring BlazeDS Integration
准备:
1、下载Spring BlazeDS Integration:http://www.springsource.org/spring-flex
2、将下载回来的jar放置到我们之前创建的blazeds项目http://depravedangel.iteye.com/blog/871480lib下
整合:
1、将原来flex提供的MessageBroker
<servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
替换成Spring MVC 控制
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><servlet-mapping><url-pattern>/spring/*</url-pattern></servlet-mapping>
2、将blazeds/WEB-INF/flex/services-config.xml中
<channel-definition id="my-amf" /></channel-definition> -->
替换成Spring的url,交由spring过滤
<channel-definition id="my-amf" name="code"><!-- Maps request paths at /* to the BlazeDS MessageBroker --><bean /><!-- Bootstraps and exposes the BlazeDS MessageBroker --><bean id="springManagedMessageBroker" />
4、打开services-config.xml,删除我们自己配置的SpringFactory
<factories><factory id="spring" /></factories>
现在已经由SBI帮我们处理了,不再需要我们再去关心了
5、打开remoting-config.xml文件,删除如下代码:
<destination id="guestListService"><properties><factory>spring</factory><source>guestListService</source></properties></destination>
整合SBI后,remoting-config.XML不再需要配置了,改成在applicationContent.xml中添加如下配置:
<!-- Expose the guestListService bean for BlazeDS remoting --><bean id="guestService" ref="springManagedMessageBroker"/><property name="service" ref="guestListService"/></bean>
6、最后一步,修改前台Flex程序的remoteObject对象属性,使其指向spring的url,便于spring过滤转发
<mx:RemoteObject id="ro" destination="guestService" endpoint="http://localhost:8080/blazeds/spring/messagebroker/amf"1 楼 maoyongkang 2011-10-02 一定得写这个endpoint="http://localhost:8080/blazeds/spring/messagebroker/amf"吗? 2 楼 maoyongkang 2011-10-03 本来很简单一件事情,被网上这些高手整的那么复杂,浪费了我一天的时间。 3 楼 depravedangel 2011-10-06 maoyongkang 写道一定得写这个endpoint="http://localhost:8080/blazeds/spring/messagebroker/amf"吗?
可以不需要,这个可以自己写个主servlet在后台截取前台传过来的amf数据解析一下,重新找到对应的service动态执行一下,只要了解amf的数据协议即可 4 楼 depravedangel 2011-10-06 maoyongkang 写道本来很简单一件事情,被网上这些高手整的那么复杂,浪费了我一天的时间。
简单不简单,在于了解其框架的演变过程,知道为啥要这样,框架到最后肯定是越来越简单,但是大致原理还是差不多,只是封装越来越多,理解原理比只知道怎么搭起来要重要