高分求解决 ibm mq 问题!急!!!

jeff_jiang 2012-12-12 02:45:04
最近刚接触到jms,公司使用的是ibm mq+spring+tomcat。。在网上找了一大堆资料。配置成这样。但是listener一直报错。spring的jmsTemplate102也无法注入..求大神帮忙。贴代码。
这个是给tomcat配的Resource
<Context antiJARLocking="true">  
<Resource
name="jms/MQConnectionFactory"
auth="Container"
type="com.ibm.mq.jms.MQQueueConnectionFactory"
factory="com.ibm.mq.jms.MQQueueConnectionFactoryFactory"
description="JMS Queue Connection Factory for sending messages"
HOST="***.***.***.***"
PORT="10389"
CHAN="SYSTEM.DEF.SVRCONN"
TRAN="1"
CCSID="437"
QMGR="cn=ECIP3_QCF"/>

<Resource
name="jms/MQSender"
auth="Container"
type="com.ibm.mq.jms.MQQueue"
factory="com.ibm.mq.jms.MQQueueFactory"
description="JMS Queue for sending messages"
CCSID="437"
QU="cn=ECIP3_Q_BATCH_CLIENT_REQ"/>

<Resource
name="jms/MQReciver"
auth="Container"
type="com.ibm.mq.jms.MQQueue"
factory="com.ibm.mq.jms.MQQueueFactory"
description="JMS Queue for receiving messages"
CCSID="437"
QU="cn=ECIP3_Q_BATCH_CLIENT_RES"/>
</Context>


这个是spring的配置

<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">
${java.naming.factory.initial}
</prop>
<prop key="java.naming.provider.url">
${java.naming.provider.url}
</prop>
<prop key="java.naming.security.principal">
${java.naming.security.principal}
</prop>
<prop key="java.naming.security.credentials">
${java.naming.security.credentials}
</prop>
</props>
</property>
</bean>

<!-- Queue About -->
<bean id="jndiQueueConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"><value>java:comp/env/jms/MQConnectionFactory</value></property>
<property name="cache" value="true" />

<property name="jndiTemplate"><ref bean="jndiTemplate" /></property>
<property name="resourceRef" value="false" />
</bean>

<bean id="jmsQueueConnectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
<property name="targetConnectionFactory"><ref bean="jndiQueueConnectionFactory" /></property>
</bean>

<bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate102">
<property name="connectionFactory"><ref bean="jmsQueueConnectionFactory" /></property>
<property name="receiveTimeout"><value>120000</value></property>
<property name="pubSubDomain" value="true" />
</bean>

<bean id="taskMngSendDestination" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate"><ref bean="jndiTemplate" /></property>
<property name="jndiName"><value>java:comp/env/jms/MQSender</value></property>
</bean>
<bean id="taskMngJmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate102">
<property name="connectionFactory"><ref bean="jmsQueueConnectionFactory" /></property>
<property name="defaultDestination"><ref bean="taskMngSendDestination" /></property>
<property name="pubSubDomain"><value>false</value></property>
<property name="receiveTimeout"><value>120000</value></property>
</bean>

<bean id="taskMngReceiveDestination" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate"><ref bean="jndiTemplate" /></property>
<property name="jndiName"><value>java:comp/env/jms/MQReciver</value></property>
</bean>
<bean id="taskMngQueueTemplate" class="org.springframework.jms.core.JmsTemplate102">
<property name="connectionFactory"><ref bean="jmsQueueConnectionFactory" /></property>
<property name="defaultDestination"><ref bean="taskMngReceiveDestination" /></property>
<property name="receiveTimeout"><value>120000</value></property>
</bean>

<bean id="taskMngMessageListener" class="com.eastcom_sw.core.jmslistener.TestJmsListener">
<property name="jmsTemplate102"><ref bean="taskMngQueueTemplate" /></property>
</bean>
<bean id="taskMngListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="concurrentConsumers" value="1" />
<property name="connectionFactory" ref="jmsQueueConnectionFactory" />
<property name="destination" ref="taskMngReceiveDestination" />
<property name="messageListener" ref="taskMngMessageListener" />
</bean>

<bean id="TestJmsBean" class="com.eastcom_sw.core.jmslistener.TestJmsBean">
<property name="jmsTemplate102">
<ref local="jmsQueueTemplate"></ref>
</property>
</bean>


listener报错:
2012-12-12 14:42:46,566 [taskMngListenerContainer-1] WARN [org.springframework.jms.listener.DefaultMessageListenerContainer] - Could not refresh JMS Connection for destination 'queue:///cn=ECIP3_Q_BATCH_CLIENT_RES' - retrying in 5000 ms. Cause: MQJMS2005: 未能为 '10.8.132.237:cn=ECIP3_QCF' 创建 MQQueueManager; nested exception is com.ibm.mq.MQException: MQJE001: MQException 出现:完成代码是 2,原因为 2195
MQJE018: 协议错误 - 接收到意外的段类型

跪求大神!!!一解决马上结贴给分!
...全文
454 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dracularking 2012-12-13
  • 打赏
  • 举报
回复
这种日志,英文中夹杂着中文,实在是不伦不类啊 能不能不用spring,手动实现一些实例化步骤来查找问题所在,可能是tomcat配的那个resource的问题
carbinehades 2012-12-13
  • 打赏
  • 举报
回复
I am having the same issue. http://ourcraft.wordpress.com/tag/spring/page/5/ Hope this will help.
dracularking 2012-12-13
  • 打赏
  • 举报
回复
引用 5 楼 q2979978 的回复:
引用 4 楼 dracularking 的回复: 这种日志,英文中夹杂着中文,实在是不伦不类啊 能不能不用spring,手动实现一些实例化步骤来查找问题所在,可能是tomcat配的那个resource的问题问题已解决~~就是配的resource的问题。。因为jndiTemplate无法读取到远程服务器上配置的jndi。只能先配在tomcat里将就用着先了。分给你了。如果你知道可能什么原因导……
Resouce的配置本身没错吧? 这个不知道,条件太少无法准确判断,不过能不能单独测试jndiTemplate的可用性呢
jeff_jiang 2012-12-13
  • 打赏
  • 举报
回复
引用 4 楼 dracularking 的回复:
这种日志,英文中夹杂着中文,实在是不伦不类啊 能不能不用spring,手动实现一些实例化步骤来查找问题所在,可能是tomcat配的那个resource的问题
问题已解决~~就是配的resource的问题。。因为jndiTemplate无法读取到远程服务器上配置的jndi。只能先配在tomcat里将就用着先了。分给你了。如果你知道可能什么原因导致无法读取远程服务器配置的话回复一下。3q,jndiTemplate配置数据没问题的。因为老项目里都在用。
jeff_jiang 2012-12-12
  • 打赏
  • 举报
回复
没人吗???求解决求解决。。求大神求大神
jeff_jiang 2012-12-12
  • 打赏
  • 举报
回复
没人吗???在线等。。急急急!!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧