1、demo.mxml:通过Consumer订阅,Producer发送消息
<mx:ChannelSet id="cs">
<mx:AMFChannel url="http://localhost:8080/JmsMessageDemo/messagebroker/amfpolling"/>
</mx:ChannelSet>
<mx:Consumer id="consumer" destination="chat-topic-jms" channelSet="{cs}"
message="messageHandler(event)" fault="messageFault(event)"/>
<mx:Producer id="producer" channelSet="{cs}"
destination="chat-topic-jms"
acknowledge="acknowledgeHandler(event)"
fault="faultHandler(event)"/>
注:这里指定channelset是因为我建的工程中services-config.xml中的配置为
<channel-definition id="my-polling-amf" class="mx.messaging.channels.AMFChannel">
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amfpolling" class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<polling-enabled>true</polling-enabled>
<polling-interval-seconds>4</polling-interval-seconds>
</properties>
</channel-definition>
运行程序时endpoint尽然变成http://{server.name}:{server.port}/webRoot/messagebroker/amfpolling(context.root应该是工程名字才对,这可能是我创建工程时设置的问题),所有要在consumer和producer中指定channelset
2、message-config.xml的配置(jms在本机):
<adapters>
<adapter-definition id="actionscript" class="flex.messaging.services.messaging.adapters.ActionScriptAdapter" default="true" />
<adapter-definition id="jms" class="flex.messaging.services.messaging.adapters.JMSAdapter" />
</adapters>
<default-channels>
<channel ref="my-polling-amf" />
</default-channels>
<destination id="chat-topic-jms">
<properties>
<jms>
<destination-type>Topic</destination-type>
<message-type>javax.jms.TextMessage</message-type>
<connection-factory>jms/flex/TopicConnectionFactory</connection-factory>
<destination-jndi-name>jms/topic/flex/simpletopic</destination-jndi-name>
<delivery-mode>NON_PERSISTENT</delivery-mode>
<message-priority>DEFAULT_PRIORITY</message-priority>
<preserve-jms-headers>"true"</preserve-jms-headers>
<acknowledge-mode>AUTO_ACKNOWLEDGE</acknowledge-mode>
<!-- <connection-credentials username="guest" password="guest"/>-->
<max-producers>1</max-producers>
</jms>
</properties>
<adapter ref="jms"/>
</destination>
jms/flex/TopicConnectionFactory:jms的factory的JNDI名字
jms/topic/flex/simpletopic:jms的resource的JNDI名字
3、如果jms在远程,那么message-config.xml的配置:
<adapters>
<adapter-definition id="actionscript" class="flex.messaging.services.messaging.adapters.ActionScriptAdapter" default="true" />
<adapter-definition id="jms" class="flex.messaging.services.messaging.adapters.JMSAdapter" />
</adapters>
<default-channels>
<channel ref="my-polling-amf" />
</default-channels>
<destination id="chat-topic-jms">
<properties>
<jms>
<destination-type>Topic</destination-type>
<message-type>javax.jms.TextMessage</message-type>
<connection-factory>jms/flex/TopicConnectionFactory</connection-factory>
<destination-jndi-name>jms/topic/flex/simpletopic</destination-jndi-name>
<delivery-mode>NON_PERSISTENT</delivery-mode>
<message-priority>DEFAULT_PRIORITY</message-priority>
<preserve-jms-headers>"true"</preserve-jms-headers>
<acknowledge-mode>AUTO_ACKNOWLEDGE</acknowledge-mode>
<!-- <connection-credentials username="guest" password="guest"/>-->
<max-producers>1</max-producers>
<!-- (Optional) JNDI environment. Use when using JMS on a remote JNDI server. -->
<initial-context-environment>
<property>
<name>java.naming.factory.initial</name>
<value>com.sun.enterprise.naming.SerialInitContextFactory</value>
</property>
<property>
<name>java.naming.factory.url.pkgs</name>
<value>com.sun.enterprise.naming</value>
</property>
<property>
<name>java.naming.factory.state</name>
<value>com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl</value>
</property>
<property>
<name>org.omg.CORBA.ORBInitialHost</name>
<value>{远程ip}</value>
</property>
<property>
<name>org.omg.CORBA.ORBInitialPort</name>
<value>3700</value>
</property>
</initial-context-environment>
</jms>
</properties>
<adapter ref="jms"/>
</destination>
节点initial-context-environment中的属性为JNDI lookup时需要设置的一些context属性(我用的是glassfish)
分享到:
相关推荐
2. **设置Blazeds**:Blazeds需要配置与Spring的连接,这样它就可以通过Spring管理的ConnectionFactory获取到JMS资源。这通常通过在Blazeds的`flex-config.xml`中添加相应的配置来完成。 3. **创建消息服务**:在...
6. **Flex与BlazeDS的集成**:在Flex应用中,我们需要配置BlazeDS的Remoting Destination,通过AMF通道连接到Java服务。通过`Service`标签定义服务,并设置相应的目的地(Destination),指定与Java后端的通信接口。...
总之,BlazeDS作为连接Java后端和Flex前端的桥梁,通过其强大的远程调用和消息传递功能,为构建高效、实时的RIA提供了强大的支持。开发者可以通过学习和掌握BlazeDS,提升应用的用户体验和交互性。
在生产环境中,考虑安全因素,你可能需要对JMS连接进行认证和授权,同时对消息传输进行加密。此外,根据系统负载和需求,可能需要对JMS服务和BlazeDS的性能进行调优,例如调整消息缓存大小、并发连接数等。 8. **...
4. **Integration with Server Technologies**: Blazeds可以轻松地与各种服务器技术集成,包括Java EE、Spring、Hibernate、JMS等。 5. **Data Management**: 提供了对数据源的强大管理,包括数据推送、数据缓存和...
3. **创建Flex客户端**:在Flex项目中,使用RemoteObject组件创建与服务器端的连接,并声明要调用的远程方法。 4. **交互操作**:在Flex客户端中,通过RemoteObject实例调用服务器端的方法,传递参数并处理返回结果...
BlazeDS通信到Java的PureMVC——Flex框架,BlazeDS的服务器配置比较麻烦,这里使用的是直接下载blazeds_turnkey_3-0-0-544.zip中的tomcat BlazeDS模板路径为: blazeds_turnkey_3-0-0-544.zip解压后路径\tomcat\...
同时,BlazeDS还支持发布Java消息服务(JMS)主题和队列,使得Flex应用能够实现发布/订阅和点对点的消息传递。 在Flex应用中,可以使用ActionScript接口来与BlazeDS服务进行交互,这些接口由BlazeDS自动生成,简化...
总结,Blazeds作为一个连接Flex和Java的强大工具,极大地提高了富互联网应用程序的交互性和实时性。通过其Remoting和Message Brokering服务,Blazeds在Flex开发中扮演着不可或缺的角色,为开发者提供了高效、灵活的...
### Blazeds入门教程知识点详解 #### 一、引言 Blazeds是一个由Adobe官方推出的开源数据服务中间件,其前身是LiveCycle Data Services(LCDS),也称为Flex Data Services(FDS)。Blazeds简化了Flex应用程序与...
6. **Flex Builder集成**:在Flex Builder(现为Adobe Flash Builder)中,Blazeds作为服务器连接选项,提供了直观的配置界面和代码自动生成,极大地简化了开发流程。 在提供的文件“blazeds-bin-readme.htm”中,...
2. **创建Flex项目**:在Flex Builder中创建新项目,设置服务器连接和数据源。 3. **定义服务**:在BlazeDS配置文件中定义通道和服务,暴露Java服务供Flex客户端调用。 4. **数据访问组件**:在Flex中使用`...
总之,Blazeds是连接Flex前端和Java后端的强大工具,其3.3.0.22497版本提供了稳定且功能丰富的服务,为开发富互联网应用程序提供了坚实的基础。通过深入理解和熟练运用,开发者可以构建出高效、实时的跨平台应用程序...
`flex-config.xml`主要用于配置Flex客户端和服务器的连接参数,而`services-config.xml`则定义了服务的属性,如安全性、数据格式、缓存策略等。 1. **flex-config.xml**:配置AMF通道、安全策略、编译设置等。例如...
这个版本包含了两个主要的战争(war)文件:blazeds.war 和 blazeds-spring.war,以及它们对应的解压后的文件夹。这些资源都是为了帮助开发者在Java EE环境中集成Flex和ActionScript客户端应用。 1. **BlazeDS**: ...
### 建立连接BlazeDS远程端的Flex应用程序 #### 深入解析:BlazeDS在Flex与后台代码交互中的角色 BlazeDS是一款由Adobe开发的强大服务器端技术,用于实现Flex、AIR和Java应用程序之间的实时通信。它允许开发者在...
Blazeds是Adobe官方推出的一款开源项目,全称为Flex Business Application Platform,它是Flex与Java应用程序之间进行数据交互的重要桥梁。Flex是一种基于ActionScript的富互联网应用程序(RIA)开发框架,而Java则...
Blazeds是一个强大的Java服务器端技术,主要用于实现Flex(一种基于Adobe Flash的用户界面开发工具)与后端Java应用程序之间的数据交互。它提供了一个全面的解决方案,使开发人员能够构建富互联网应用程序(RIA),...
总的来说,BlazeDS是连接Flex前端和Java后端的强大工具,尤其适合需要实时数据同步和低延迟通信的Web应用。通过学习这个实例,你可以进一步提升在RIA开发中的技能,掌握基于BlazeDS的分布式系统构建。