Spring环境下使用多个JMS队列时找不到JMS队列的问题
来源:互联网 发布:vb datagrid设置列宽 编辑:程序博客网 时间:2024/05/15 12:37
一个应用,连接两个不同的JMS队列,实际运行时抛出如下异常:
org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is weblogic.jms.common.JMSException:
could not find Server JmsManaged_7030; nested exception is weblogic.jms.common.JMSException: could not find Server JmsManaged_7030
上Weblogic控制台查看运行状态,发现队列配置正确且正常运行,排除配置问题。
分析程序,在JMS配置文件JmsA.xml中发现如下内容:
<bean id="jmsConnectionFactoryForA" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jndiTemplate"/>
</bean>
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
......
......
</bean>
在JMS配置文件JmsB.xml中发现如下内容:
<bean id="jmsConnectionFactoryForB" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jndiTemplate"/>
</bean>
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
......
<prop key="java.naming.provider.url">${jmsUrlForB}</prop>
......
</bean>
问题就发生在jndiTemplate上。由于默认配置Spring按名字匹配,而系统中定义了不止一个jndiTemplate,故无法找到匹配的jndiTemplate,发生问题。将JmsA.xml中将jndiTemplate改为jndiTemplateForA,将JmsB.xml中则改为jndiTemplateForB,并相应修改引用的地方,重新测试OK。
建议:给bean的id命名时要避免重名,通常可以采用添加后缀的形式。
- Spring环境下使用多个JMS队列时找不到JMS队列的问题
- 使用JMS队列
- spring jms activeMQ 消息队列
- JMS之Spring +activeMQ实现消息队列
- spring boot-同时使用jms的Queue(队列)和Topic(发布订阅)
- JMS消息队列
- 消息队列JMS
- jms-activemq消息队列
- JMS消息队列入门
- 消息队列与JMS
- JMS消息队列
- jboss配置使用JMS消息队列
- JMS-使用消息队列优化网站性能
- spring jms 多个监听
- 基于Weblogic8的JMS队列实例配置
- 基于Weblogic8的JMS队列实例配置
- spring 下 配置jms messageListener 的事务及相关问题
- 利用JMX监控JMS队列
- 对爱情的见解
- 关于Ycnd多语言支持的说明!
- Javascript之文件操作 (IE)
- 实现TCHART+上面画透明图片飘动效果delphi
- 09-12-28
- Spring环境下使用多个JMS队列时找不到JMS队列的问题
- 电子白板简单实现delphi
- VC常用数据类型使用转换详解(转自jim97的blog)
- 认识元数据和IL(下)
- CVS创建用户
- java日期有效性验证
- WINCE5.0的中断深入了解
- 提升30%直销业绩的法宝
- Form 重写ProcessCmdKey: 解决enter同时Tab 的问题