Spring BlazeDS 整合参考指南.docx
- 文档编号:28269725
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:32
- 大小:34.65KB
Spring BlazeDS 整合参考指南.docx
《Spring BlazeDS 整合参考指南.docx》由会员分享,可在线阅读,更多相关《Spring BlazeDS 整合参考指南.docx(32页珍藏版)》请在冰豆网上搜索。
SpringBlazeDS整合参考指南
SpringBlazeDS整合参考指南
JeremyGrelle
版本1.0.0.RC1
这份文件的副本可以给自己并且分发给其他人使用,只要你不收取这些副本任何费用,此外,每份副本包含版权声明,无论是以印刷还是电子方式分布。
2009年4月出版
目录
1.SpringBlazeDS整合概述3
1.1背景3
1.2SpringBlazeDS整合需要什么来运行3
1.3.何处得到支持4
2.用Spring配置和使用BlazeDSMessageBroker5
2.1.引言5
2.2.在Spring里设定DispatcherServlet5
2.3.在Spring里设定MessageBroker6
2.4.MessageBroker的映射请求7
2.5.从Flex客户机程序使用Spring-managedDestinations10
2.6.高级MessageBroker用户化12
2.7.使用自定义异常转换13
2.8.使用自定义信息拦截14
2.9.提供客户服务适配器14
3.输出SpringBeansforFlexRemoting16
3.1.引言16
3.2.配置remoting服务16
3.3.使用remoting-destination标签17
3.4.ExportingBeansforRemotingwith@RemotingDestination19
4.确保BlazeDSDestinations带有Spring安全21
4.1.引言21
4.2.配置Spring安全整合22
4.3.配置端点和目的文件安全25
5.整合BlazeDSMessageService28
5.1.引言28
5.2.配置theMessageService28
5.3.使用AMFMessageDestinations30
5.4.使用JMSMessageDestinations31
5.5.使用Spring集成信息目的文件32
5.6.发送带有MessageTemplate的AMFMessages33
1.SpringBlazeDS整合概述
1.1背景
Spring在用来访问其核心服务的客户端技术一向是不可知的,通过有意留下开放式的选择,并驱动任何整合方案需求增加到Spring项目组合。
SpringBlazeDS一体化是对群落的需求为顶级的解决方案来建立Spring-powered供电丰富的互联网应用程序中使用了AdobeFlex的客户端技术。
BlazeDS是一个来自Adobe的开放源码方案,为连接Flex的前端到Java后端服务提供远程和通讯基础。
尽管先前可能已经用BlazeDS连接到Spring-managed服务器,对开发者来说稍微感觉到不“自然”,需要额外的负担不得不维护分离的BlazeDSxml配置。
SpringBlazeDS整合扭转局面通过发展BlazeDSMessageBroker为Spring-managed对象,打开路径到更加广泛的遵循“Spring方式”的一体化。
1.2SpringBlazeDS整合需要什么来运行
Java5或者更高
Spring2.5或者更高
AdobeBlazeDS3.2或者更高
1.3.何处得到支持
专业的来自源的有关SpringBlazeDS整合的支持可从SpringSource获得,Spring背后的公司。
2.用Spring配置和使用BlazeDSMessageBroker
2.1.引言
为使用SpringBlazeDS一体化必须配置的核心组成部分是
MessageBroker。
来自Flex客户的HTTP信息将通过Spring发报机发送到Spring-managedMessageBroker。
当使用Spring-managedMessageBroker时没有必要配置BlazeDSMessageBrokerServlet。
2.2.在Spring里设定DispatcherServlet
DispatcherServlet必须在web.xml里设定为正常,来引导spring网页应用背景。
例如:
--ThefrontcontrollerofthisSpringWebapplication,responsibleforhandlingallapplicationrequests-->
2.3.在Spring里设定MessageBroker
为设定您的网页应用背景里的MessageBroker提供一种简化的springXML配置名称。
为了使用名空间支持,必须在SpringXML配置文件里
添加架构的位置。
一个典型的配置就像如下:
xmlversion="1.0"encoding="UTF-8"?
>
//www.springframework.org/schema/beans" xmlns: flex="http: //www.springframework.org/schema/flex" xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation=" http: //www.springframework.org/schema/beans http: //www.springframework.org/schema/beans/spring-beans-2.5.xsd http: //www.springframework.org/schema/flex http: //www.springframework.org/schema/flex/spring-flex-1.0.xsd"> ... 这使得springBlazeDS集成配置标签是可得的,在您的配置文件中的Flex名 空间。 上述安装将承担其余跟随的配置实例。 为在配置名空间得到每个属性和标记全面的详情,请务必参阅 spring-flex-1.0.xsd,因为每一个元素和属性有很全面的文件记载。 使用XSD-aware XML编辑器例如在Eclipse里的必须为你的类型自动提出文件。 (注意直到最终的xsd公布在上述网址,你将不得不手动添加XSD到Eclipse里的XML目录,来自动完成工作)。 在最小值时,在spring里MessageBrokerFactoryBean必须设定为bean。 网页应用背景为了用MessageBrokerHandlerAdapter引导MessageBroker一个适当的HandlerMapping(通常一个简单的UrlHandlerMapping)来发送传入的请求到Spring-managedMessageBroke。 这些beans将被自动注册通过使用提供的message-broker标签在您的bean 定义文件。 例如,其最简单的形式: message-broker/> 这将设立MessageBroker和必要的支持性基础,通过使用有判断力的缺省值。 通过提供message-broker标签及其相关子元素,缺省值可以不用考虑。 例如,BlazeDSXML配置文件的默认位置 (/WEB-INF/flex/services-config.xml)可以被推翻通过使用services-config-path属性。 MessageBrokerFactoryBean使用Spring的ResourceLoader提取,因此,可以使用典型的spring源路径。 例如,从应用程序的类路径加载配置: message-brokerservices-config-path="classpath*: services-config.xml" 使用vanillaSpring配置的相当的MessageBrokerFactoryBean定义将是: --BootstrapsandexposestheBlazeDSMessageBroker--> services-config.xml"/> 特别注意的是,用message-broker标签时,没有必要为MessageBroker指定一个自定义的编号,它实际上是被阻拦了,这样就不必不断地在后面提到它。 你将需要提供一个自定义ID的唯一理由是如果在同样的网页应用背景下引导不止一个MessageBroker。 2.4.MessageBroker的映射请求 要正确发送传入的请求到Spring-managedMessageBroker,必须要求映射 配置在三个地方: 1。 DispatcherServlet映射在web.xml 2。 HandlerMappingspring网页应用背景 3。 BlazeDSservices-config.xml中的频道定义 最简单的请求映射的情况是当Flex前端是唯一的客户端应用程序类型。 在这种情况下,您可以仅仅绘制/messagebroker作为最高级别请路径。 web.xml中的映射将是: --Mapall/messagbrokerrequeststotheDispatcherServletforhandling--> 当使用message-broker配置标记,一个SimpleUrlHandlerMapping安装到默认地图,所有传入DispatcherServlet请求Spring-managerMessageBroker使用/*路径模式。 默认映射可以被推翻通过提供一个或多个映射子元素。 如果你想提供自己的HandlerMappingbean配置,您可以禁用 缺省值使用message-broker标记禁用默认映射属性。 安装SimpleUrlHandlerMapping顺序可以设置(适用于多种复杂情况下处理 映射类型安装在同一范围内)使用映射命令属性。 然后在Spring网页应用背景映射中的SimpleUrlHandlerMapping全部要求Spring-managedMessageBroker通过MessageBrokerHandlerAdapter。 用message-broker配置标签安装的默认设置相当于以下的bean定义: --Mapsrequestpathsat/*totheBlazeDSMessageBroker--> /*=_messageBroker --DispatchesrequestsmappedtoaMessageBroker--> BlazeDS服务器中的频道定义——config.xml必须符合所选择的映射。 例如,在BlazeDS安装一个典型的AMF频道应符合上述映射策略: //{server.name}: {server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/> 有关服务器——config.xml配置沟通频道更多信息参阅BlazeDS文件。 通常的情况是,您的应用程序不仅仅需要服务Flex-based客户。 例如,您可能会建造一个RESTful(安全的)架构用来支持多种客户类型。 您可能甚至是消耗使用FlexHTTPService成分的安全终端。 在 这种情况下,您应该选择一个更灵活的映射策略,如mapping/spring/* DispatcherServlet,mapping/messagebroker/*Spring-managedMessageBroker,以及修改任何BlazeDS频道定义。 您可以不考虑如下message-broker标记的默认mapping(映射)战略: message-broker> mappingpattern="/messagebroker/*"/> message-broker> 同时你将不得不在你的BlazeDS频道定义中说明spring/*mapping。 例如: //{server.name}: {server.port}/{context.root}/spring/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/> 2.5.从Flex客户机程序使用Spring-managedDestinations 外在的频道定义是个必要条件当使用动态目的文件(指任何补充的动态程序目的文件,而不是在BlazeDSservices-config.xml中定义,例如创建的remoting-destination标记和各种*-message-destination标签)。 更多信息查阅Adobe文件: #194376 唯一不用在客户端上明确界定ChannelSet的路径是,如果 1。 您使用的是明确界定目的文件在services-config.xml(即不是动态的目的文件)并且编译你的flex客户机程序文件。 2。 您的目的文件是使用广泛应用的默认频道并且编译你的flex客户机程序文件。 即使你没有使用动态创建的目的文件,不断地编译你的客户机程序services-config.xml是否是一个好主意是有争论的,从而耦合您的客户机到您的服务器配置。 它 通常是合意的让您的客户端和您的服务器端代码为两个不同的模块,但 编译services-config.xml使这些模块之间的界线变得模糊不清。 我们的建议是,保持客户端的配置ChannelSets 明确包含在客户端模块一般是更洁净的。 一个很好的方法做到这一点,而不需要硬编码的 网址在您的客户端代码是使ActionScriptDI框架如SpringActionScript(一个Spring扩展项目,以前被称为Prana)。 假如您选择编译客户机程序services-config.xml路线,请注意,您可以 至少保持来自客户机程序编码的URL信息,通过使用ServerConfig.getChannel就如在引用的BlazeDS文件所描述的那样。 2.6.高级MessageBroker用户化 按照MessageBrokerFactoryBean的MessageBroker的初始化逻辑上由两个阶段构成: 1.分解BlazeDSXML配置文件并且应用其设置为新创造的MessageBroker。 2.启动MessageBroker及其服务器。 特殊的MessageBrokerConfigProcessor回调接口,可以提供自定义 处理要做的MessageBroker,在每个面板后面,在获得请求处理之前。 该接口用于springBlazeDS集成内部,但也可普遍应用于先进的纲领性反省和MessageBroker定制。 自定义MessageBrokerConfigProcessor可以作为Springbean配置,然后通过配置处理器标记登记MessageBrokerFactoryBean。 例如,执行微不足道的一些额外的有关MessageBroker的信息: packagecom.example; importorg.springframework.flex.messaging.config.MessageBrokerConfigProcessor; importflex.messaging.MessageBroker; importflex.messaging.services.RemotingService; publicclassMyDestinationCountingConfigProcessorimplementsMessageBrokerConfigProcessor{ publicMessageBrokerprocessAfterStartup(MessageBrokerbroker){ RemotingServiceremotingService= (RemotingService)broker.getServiceByType(RemotingService.class.getName()); if(remotingService.isStarted()){ System.out.println("TheRemotingServicehasbeenstartedwith" +remotingService.getDestinations().size()+"Destinations."); } returnbroker; } publicMessageBrokerprocessBeforeStartup(MessageBrokerbroker){ returnbroker; } 这个类可以按如下方式用MessageBroker配置和登记: message-broker> config-processorref="myConfigProcessor"/> message-broker> 2.7.使用自定义异常转换 为了传播有用的信息回Flex客户端当服务器发生异常时,最初的例外必须转化为一个flex.messaging实例.信息异议。 如果特殊的转换逻辑不适用,一般的“Server.Processing”错误会传播到用户端,不给客户机会找出真实的错误原因来采取适当的行动。 特别的例外转换通过默认的转换转化Spring安全异议为合适的MessageException来配置,但为自己的应用程序级的例外情况提供自定义翻译也可能是有用的。 自定义异常翻译逻辑可以通过这些接口实施。 这些方案必须配置为Springbeans,然后通过XML配置名空间注册如下: --CustomexceptiontranslatorconfiguredasaSpringbean--> message-broker> exception-translatorref="myExceptionTranslator"/> message-broker> 2.8.使用自定义信息拦截 自定义信息拦截器过去常用于特殊处理逻辑以传入和传出。 在他们的de-serializedJava形式中的AMF信息。 例如,一个拦截器常用来检查传入信息的内容,或增加额外的信息到输出信息。 自定义消息处理逻辑是通过执行org.springframework.flex.core.MessageInterceptor接口提供。 这些执行必须用Springbeans配置,然后通过XML配置如下名空间注册: --CustommessageinterceptorconfiguredasaSpringbean-->
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Spring BlazeDS 整合参考指南 整合 参考 指南