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)
分享到:
相关推荐
Flex订阅JMS实现实时刷新 利用BlazeDS和JMS的消息机制实现数据的推送,从而实现页面的实时刷新(含详细的说明文档和源码)
NULL 博文链接:https://yunzhongxia.iteye.com/blog/789698
BlazeDS通信到Java的PureMVC——Flex框架,BlazeDS的服务器配置比较麻烦,这里使用的是直接下载blazeds_turnkey_3-0-0-544.zip中的tomcat BlazeDS模板路径为: blazeds_turnkey_3-0-0-544.zip解压后路径\tomcat\...
BlazeDS是一个基于服务器的Java远程调用(remoting)和Web消息传递(messaging)技术,使得后台的Java应用程序和运行在浏览器上的Flex应用程序能够相互通信。
blazeds.war blazeds
Flex+blazeds实现与mySQL连接数据库
Spring BlazeDS Integration,Flex通过remoteObject与java通讯,附带例子 文档
包含blazeds.war blazeds-spring.war 以及解压后的blazeds,blazeds-spring文件夹, 可直接拷贝到javaee项目下的WebRoot文件夹下
Flex技术本身和Java就有很强的关联性,它提供了一个基于Eclipse的IDE和BlazeDS.BlazeDS是个基于服务端的Java远程调用和Web消息的一个开源的技术。有许多应用都是以Java为后端处理的。Flex用于前端。由于Java和Flex...
Blazeds入门教程.doc
BlazeDS入门:HTTP Service BlazeDS入门:HTTP Service BlazeDS入门:HTTP Service
blazeds4整合spring3 这是我新近研究的方法 与整合spring2.5以下的方法有不同了,(看过一些教程觉得不是很好,用起来不顺手) 最终参考了官方的sample,得到了这个不错的整合方法。 把要用blazeds公开给flex的java...
Using BlazeDS and Flex integrated。
blazeDS war包及Flex结合blazeDS的入门程序及操作步骤比较适合入门选手
flex 工具 blazeds
blazeds与spring的结合使用项目源码
Flex Blazeds入门教程 写的很不错的教程
JAVA通过BlazeDS与FLEX通信 BlazeDS.zip java项目,使用MYECLIPSE导入 FlexJavaServer.fxp FLEX项目,使用FLASHBUILDER4.5导入
BlazeDS开发者指南中文版,很详细的描述了BlazeDs的基本原理,开发、配置过程。
最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的...