当前位置: 首页 > news >正文

TongWeb+TongLINK/Q的集成方式

问题:

当使用TongWeb+TongLINK/Q产品,想用JMS开发消息服务时,不知如何使用?

1.当你看TongLINK/Q手册《JMS编程参考》时,在给你讲TongWeb5.0+TongLINK/Q8.1的消息驱动bean(Message-Driven Bean,MDB)配置。

2.当你去看TongWeb7的《用户手册》时,在给你讲TongWeb7.0+TongLINK/Q8.1的消息驱动bean(Message-Driven Bean,MDB)配置。

正确的使用方式:

采用spring JMS框架,抛弃了TongLINK/Q的TongJMS_ra.rar包,省略了一层层的TongWeb配置和MDB开发,单纯的可以通过spring的bean配置快速完成开发,并且可以在ActiveMQ、IBM MQ等JMS服务器之间任意切换,TongWeb无需要任何更改。大致步骤如下:

1.配置TongLINK/Q的jms,只列出片段。如果细讲TLQ配置过程会又臭又长。

#tlqjndi.conf配置片段 [JndiSystem] # [Factory] # 连接工厂 # [FactoryRecord] # FactoryName = RemoteConnectionFactory # 连接工厂名称 FactoryType = xqf # 连接工厂类型 tmqiAddressList = tlq://192.168.32.100:10024 # 远程方式的连接url # ############################################################ [JndiQueue] # Jndi队列 # [JndiQueueRecord] # JndiQueueName = lq # jndi队列名 TlqQueueName = lq # TLQ的队列名

2. spring bean配置文件内容如下:

<?xml version="1.0" encoding="UTF-8"?> <beans> <!-- 配置TLQ的JNDI上下文 --> <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate"> <property name="environment"> <props> <prop key="java.naming.factory.initial">tongtech.jms.jndi.JmsContextFactory</prop> <prop key="java.naming.provider.url">tlkq://192.168.32.100:10024</prop> </props> </property> </bean> <!-- 配置TLQ的JMS连接工厂 --> <bean id="JmsQueueConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiTemplate" ref="jndiTemplate" /> <property name="jndiName" value="RemoteConnectionFactory" /> </bean> <!-- 配置发送队列 --> <bean id="sendDestination" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiTemplate" ref="jndiTemplate" /> <property name="jndiName" value="sendq" /> </bean> <!-- 配置接收队列 --> <bean id="receDestination" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiTemplate" ref="jndiTemplate" /> <property name="jndiName" value="lq" /> </bean> <!-- 配置JMS模版 --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="JmsQueueConnectionFactory" /> </bean> <!-- 消息监听器,相当于MDB类 --> <bean id="myTextListener" class="com.tong.jms.TextListener"> </bean> <!-- jms消费 --> <bean id="javaConsumer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="connectionFactory" ref="JmsQueueConnectionFactory" /> <property name="destination" ref="receDestination" /> <property name="messageListener" ref="myTextListener" /> </bean> </beans>

3.编写com.tong.jms.TextListener接收消息,相当于MDB

//接受lq队列消息 public class TextListener implements MessageListener { public void onMessage(Message message) { TextMessage msg = null; try { if (message instanceof TextMessage) { msg = (TextMessage) message; System.out.println("Reading message: " + msg.getText()); } else { System.out.println("Message of wrong type: " + message.getClass().getName()); } } catch (JMSException e) { System.out.println("JMSException in onMessage(): " + e.toString()); } catch (Throwable t) { System.out.println("Exception in onMessage():" + t.getMessage()); } } }

4.编写发送消息的bean

//发送sendq队列消息片段 JmsTemplate template = (JmsTemplate) ctx.getBean("jmsTemplate"); Destination destination = (Destination) ctx.getBean("sendDestination"); template.send(destination, new MessageCreator() { public Message createMessage(Session session) throws JMSException { return session.createTextMessage("发送消息:Hello TongLINK/Q Text Message!"); } });

5. 完成,是不是比手册的配置过程简单的多?

http://www.rkmt.cn/news/1497030.html

相关文章:

  • 别再只看GPS信号格了!手把手教你读懂手机里的DOP值,提升户外定位精度
  • Docker卸载步骤
  • 保姆级教程:在嵌入式Linux平台上用逻辑分析仪抓取并解析SPMI总线时序
  • ETCD未授权访问风险基于角色认证和启用https的ca证书修复方案
  • 计算机组成原理学习笔记:手把手拆解CPU执行一条指令的全过程(以ADD指令为例)
  • 2026年 南京汽车维修/汽车保养/汽车空调维修/奔驰、宝马、奥迪专修推荐榜:专业深修与暖心服务口碑之选 - 品牌发掘
  • BES2500Z平台实战:从零搭建TWS耳机项目,手把手教你配置GPIO按键与LED指示灯
  • 大堂摆件厂家常见问题解答(2026最新专家版) - 热点速览
  • PostgreSQL两节点用keepalived实现主备的高可用架构
  • 在eNSP模拟器上配置usg6000v的虚拟系统
  • 在Windows上用C++原始套接字给IPv4报文加Option字段:一个被遗忘的扩展头实战
  • 2026最新橡塑板十大排名一览表:解密绝热保温源头工厂 - 奔跑123
  • Qwen-Image-Edit-Rapid-AIO:融合加速技术与模型优化的高效图文生成工具链
  • 图像增强的100种方法
  • 2026年广州公司注册代办与资质办理优选机构深度评测:全流程服务与税务异常解决能力解析 - 品牌发掘
  • 从PDF到结构化数据:用Marker实现高效文档智能转换的完整指南
  • 告别Wireshark GUI:用tshark命令行5分钟搞定批量数据包分析与拆分
  • 2026最新的 国内以及河北地区防静电橡胶板生产厂家实力排行及采购参考 防静电橡胶板 - 奔跑123
  • 2026石家庄黄金回收排行:收的顶领跑,正规变现更安心 - 奢侈品回收测评
  • 终极指南:如何用De-Bloater快速清理Android系统垃圾应用
  • 突破性轻量化方案:零门槛实现AI数字人创作
  • 终极社交媒体数据解决方案:TikHub API Python SDK 完整指南
  • ADS 2024 实战:手把手教你用负载牵引优化功放效率(从72%到78%)
  • 从汽车到无人机:手把手教你为STM32C8T6的CAN接口配置不同场景的波特率
  • 南京高考复读机构哪家好?2026 综合实力排名完整榜单 - 速递信息
  • Wan2.2提示词扩展技术:从新手到专业导演的AI视频创作指南
  • react19【系列实用教程】useReducer(含 useImmerReducer ) —— 升级版的 useState (2026最新版)
  • 2026济南黄金回收避坑指南!别再被扣费套路骗钱,内行都选这家正规店 - 奢侈品回收评测
  • 2026免费更换背景软件保姆级教程,手机电脑多款工具手把手教你用 - 办公小帮手
  • 从‘装箱问题’到快递打包:用C++模拟优化你的包裹空间(附完整代码)