- 浏览: 3474317 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wanglf1207:
EJB的确是个不错的产品,只是因为用起来有点门槛,招来太多人吐 ...
weblogic-ejb-jar.xml的元素解析 -
qwfys200:
总结的不错。
Spring Web Flow 2.0 入门 -
u011577913:
u011577913 写道也能给我发一份翻译文档? 邮件437 ...
Hazelcast 参考文档-4 -
u011577913:
也能给我发一份翻译文档?
Hazelcast 参考文档-4 -
songzj001:
DbUnit入门实战
1. 什么是BlazeDS?
简单的说,BlazeDS是一种服务端使用java进行web通信的技术,其可以使开发人员方便地连接到后端分布式数据,推送数据到Flex或AIR应用,为RIA(rich Internet application)提供更好的体验。
很多的RIA(rich Internet
application)应用需要更好的数据连接、通信模式。BlazeDS中的远程调用,可以重用服务端已有的java代码,通过配置实现Flash客
户端和服务端的Java方法通信。并且,使用AMF(active message
format)二进制通信格式,提高了执行效率,比以往的基于文本格式(如:XML、SOAP)的快了10倍。
BlazeDS的具体功能,可以查看Adobe的wiki:
http://opensource.adobe.com/wiki/display/blazeds/Features
blazeDS下载
2. 什么是Spring BlazeDS Integration?
简单的理解,就是把spring的bean暴露成BlazeDS服务。
在Spring BlazeDS Integration之前,BlazeDS要访问spring的bean,得自己写代码。
通过Spring BlazeDS Integration,当Flash来访问服务端时,spring会把请求转发给Flex message
broker。同时,我们把spring中的一些bean暴露成Flex remoting
service,那么Flash就能调用到spring中暴露成Flex remoting
service的bean。很像spring暴露Hessian。
Spring BlazeDS Integration下载
3. 运行Spring BlazeDS Integration的要求
Java 5 或以上
Spring 2.5 或以上
Adobe BlazeDS 3.2 或以上
4. 如何配置(极大部分参考spring官方文档)
a. 首先,我们得配置Spring DispatcherServlet。这个类在spring-webmvc.jar中。
在web.xml文件中,加入如下servlet:
<!– The front controller of this Spring Web application, responsible for handling all application requests –>
<servlet>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/web-application-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
我们将把spring bean配置在web-application-config.xml文件里面。
b.接着,我们得把MessageBroker 配置到spring里面。如下:
<!– Bootstraps and exposes the BlazeDS MessageBroker –>
<bean id=”mySpringManagedMessageBroker” class=”org.springframework.flex.messaging.MessageBrokerFactoryBean” />
MessageBrokerFactoryBean在Spring WebApplicationContext中必须声明成一个bean,上面的是最简单的形式。
MessageBrokerFactoryBean将会去寻找BlazeDS的配置文件(默认位置为/WEB-INF/flex/services-config.xml),当然我们可以用servicesConfigPath这个属性去重置这个值,如:
<!– Bootstraps and exposes the BlazeDS MessageBroker –>
<bean id=”mySpringManagedMessageBroker” class=”org.springframework.flex.messaging.MessageBrokerFactoryBean” >
<property name=”servicesConfigPath” value=”classpath:flex/services-config.xml” />
</bean>
c. 把请求映射到MessageBroker。
在web.xml文件中,加入如下配置。所有messagebroker下的请求都会被映射。
<!– Map all /messagbroker requests to the DispatcherServlet for handling –>
<servlet-mapping>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
在web-application-config.xml中,加入:
<!– Maps request paths at /* to the BlazeDS MessageBroker –>
<bean class=”org.springframework.web.servlet.handler.SimpleUrlHandlerMapping”>
<property name=”mappings”>
<value>
/*=mySpringManagedMessageBroker
</value>
</property>
</bean>
<!– Dispatches requests mapped to a MessageBroker –>
<bean class=”org.springframework.flex.messaging.servlet.MessageBrokerHandlerAdapter”/>
而在spring中,HandlerMapping通过MessageBrokerHandlerAdapter把请求映射到Spring-managed MessageBroker。
注意:在BlazeDS配置文件services-config.xml中,配置的url不能错,下面就有messagebroker。
<channel-definition id=”my-amf” class=”mx.messaging.channels.AMFChannel”>
<endpoint
url=”http://{server.name}:{server.port}/{context.root}/messagebroker/amf”
class=”flex.messaging.endpoints.AMFEndpoint”/>
<properties>
<polling-enabled>false</polling-enabled>
</properties>
</channel-definition>
具体关于BlazeDS的配置,可以看BlazeDS documentation(http://livedocs.adobe.com/blazeds/1/blazeds_devguide/)。
d. 暴露spring bean为Flex remoting。
配置remoting-config.xml,这个文件的位置可以在services-config.xml中配置。
如:
<services-config>
……
<services>
<service-include file-path=”remoting-config.xml” />
</services>
……
</services-config>
remoting-config.xml的最简单配置如下:
<?xml version=”1.0″ encoding=”UTF-8″?>
<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>
</service>
(注意:在未来的Spring BlazeDS Integration版中,将不会用到remoting-config.xml这个配置文件。)
使用FlexRemotingServiceExporter
现在假设我们有一个bean
<bean id=”productService” class=”flex.samples.product.ProductServiceImpl” />
要暴露成Flex remoting。
则可以这样做:
<!– Expose the productService bean for BlazeDS remoting –>
<bean id=”product” class=”org.springframework.flex.messaging.remoting.FlexRemotingServiceExporter”>
<property name=”messageBroker” ref=”mySpringManagedMessageBroker”/>
<property name=”service” ref=”productService”/>
</bean>
这里的id,将会默认被作为Flex remoting destination的id,所以在Flash客户端中调用时,假如没有被重置,那么得用spring bean的id的值来作为Flash调用时的 destination的值。
5. 上面就是整个服务器端的配置。附件里面是一个非常简单的demo,包括Flex项目和java web项目(web项目没有jar包,得自己导入)。
发表评论
-
说明SOA监管(SOA Governance)实例(收录备查)
2012-12-19 11:35 1716SOA 已经不是单纯技术问 ... -
Injecting Spring Beans into Java Servlets
2012-11-01 10:21 1911If you are working in a Java ... -
用 HttpServletResponseWrapper 实现 Etag 过滤器
2012-07-09 16:58 3710原文出处:http://blog.chenlb.com/200 ... -
Eclipse Indigo - Cannot install Android ADT Plugin
2012-02-29 01:17 3838When I try to install the And ... -
Eclipse Indigo - Cannot install Android ADT Plugin
2012-02-29 01:13 1943When I try to install the And ... -
[转]mybatis下的分页,支持所有的数据库
2011-07-21 13:21 14791大 家都知道,mybatis的自带分页方法只是逻 ... -
Java framework for text- & console-based forms?
2011-07-21 01:06 1679charva jcurses JNA , ... -
JNA(Java Native Access)学习入门
2011-07-21 01:04 22528Java Native Access 项目 在 ... -
使用IntrospectorCleanupListener 解决quartz引起的内存泄漏
2011-04-20 11:59 13291"在服务器运行过程中,Spring不停的运行的计划任 ... -
DBCP代码研读以及就数据库连接失效的解决
2011-03-31 11:03 3730问题 网上很多评论说DBCP有很多BUG,但是都没有指明是什 ... -
ContextLoaderListener
2010-12-06 15:58 8427(1) org.springframework.web.c ... -
Servlet3.0新功能: 异步处理
2010-12-06 15:22 3131J2EE 6和Glassfish 3V正式发 ... -
Servlet3.0引入的新特性
2010-12-06 15:20 3031Servlet3.0规范的新特性主要是为了3个目的: ... -
100個節點上運行群集亞馬遜EC2上Hazelcast
2010-12-03 23:59 3297本文的目的,適是给妳湮示的細節集群的100個節點。此湮示記錄, ... -
Spring Properties Reloaded
2010-12-02 14:54 4345Spring Properties Reloaded Som ... -
为spring2.5中的jpetstore增加perf4j监控
2010-09-02 13:51 2612perf4j是一款类似于log4j的性能检测工具. 它 ... -
语义网的学习资源大汇集(备忘)
2010-06-23 22:48 1693网上资源 http:/ ... -
使用 JOLAP 实现复杂分析查询
2010-06-06 13:42 1926Shashank Tiwari 在本文中对 ... -
HTML5 Canvas for Internet Explorer
2010-06-04 21:16 1833Canvascape http://www.benjoff ... -
大型网站架构演变和知识体系
2010-06-01 23:47 1916架构演变第一步:物 ...
相关推荐
Spring BlazeDS Integration 1.0.0
Spring BlazeDS Integration,Flex通过remoteObject与java通讯,附带例子 文档
使用flex 4.5 + Spring 3.0 + Hibernate 3.3 + Cairngorm 2.2.1 + BlazeDS 3.3.0 + Spring BlazeDS Integration 1.0.3整合出的一个登录的小demo·
Java 服务器端技术Spring BlazeDS Integration.docx,看了启示很多
NULL 博文链接:https://depravedangel.iteye.com/blog/883636
NULL 博文链接:https://madfroghe.iteye.com/blog/935337
NULL 博文链接:https://chenhuiggggg.iteye.com/blog/1994009
Spring BlazeDS Integration
2. Flex + BlazeDS + Spring BlazeDS Integration + Spring(>= 2.5.6) + iBATIS + Cairngorm 3. Flex + BlazeDS + Spring() + iBATIS + pureMVC 4. Flex + BlazeDS + Spring BlazeDS Integration + Spring(>= ...
整合 Adobe Flex 和 Spring 的关键就在于提供一种方法使得 Adobe Flex 客户端程序可以很容易访问到 Spring...利用开源框架 BlazeDS 和 Spring BlazeDS Integration 来集成 Adobe Flex 和 Spring 可以帮助你做到这一点。
2. Flex + BlazeDS + Spring BlazeDS Integration + Spring(>= 2.5.6) + iBATIS + Cairngorm 3. Flex + BlazeDS + Spring() + iBATIS + pureMVC 4. Flex + BlazeDS + Spring BlazeDS Integration + Spring(>= ...
14.1 用Spring Portlet MVC开发一个简单的Portlet 544 14.1.1 问题 544 14.1.2 解决方案 545 14.1.3 工作原理 546 14.2 将Portlet请求映射到处理程序 553 14.2.1 问题 553 14.2.2 解决方案 553 14.2.3...
14.1 用Spring Portlet MVC开发一个简单的Portlet 544 14.1.1 问题 544 14.1.2 解决方案 545 14.1.3 工作原理 546 14.2 将Portlet请求映射到处理程序 553 14.2.1 问题 553 14.2.2 解决方案 553 14.2.3...
web flow, SOAP web services (REST web services are part of the core), enterprise integration, batch processing, mobile, various flavors of social (Facebook, LinkedIn, Twitter, GitHub, and so on), ...
Flex on Java shows how to use Flex alongside existing Java applications, and how to integrate Flex using familiar server-side technologies such as Spring, EJBs, JMS, and more. The authors, both Agile...