在春季JMS項目中,我嘗試連接到放置在遠程服務器中的IBM MQ QUEUE。代碼可以到達IBM MQ服務器並識別MQ管理器,但是當它嘗試與在.bindings文件中提及其名稱的QUEUE進行通信時(該文件在IBM MQ服務器中生成,並且我將其複製到本地文件夾中和我提到的這個文件夾的名稱作爲JNDI資源),我得到了以下錯誤:IBM MQ問題:JMSMQ1113目標未設置名稱
INFO - Setup of JMS message listener invoker failed for destination 'TI.UNIT1.ENQ.IN' - trying to recover. Cause: JMSMQ1113: Aucun nom n'est défini pour la destination.
com.ibm.msg.client.jms.DetailedJMSException: JMSMQ1113: Aucun nom n'est défini pour la destination. Tentative d'utilisation d'une file d'attente ou d'une rubrique MQ créée à l'aide du constructeur par défaut. Un nom doit avoir été défini pour que la file d'attente puisse être utilisée. Après la création, définissez un nom dans la file d'attente ou la rubrique MQ.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:411)
at com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:390)
at com.ibm.mq.jms.MQDestination.validateDestination(MQDestination.java:1455)
at com.ibm.mq.jms.MQQueueSession.createReceiver(MQQueueSession.java:118)
at org.springframework.jms.listener.DefaultMessageListenerContainer102.createConsumer(DefaultMessageListenerContainer102.java:102)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.createListenerConsumer(AbstractPollingMessageListenerContainer.java:221)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.initResourcesIfNecessary(DefaultMessageListenerContainer.java:1005)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:981)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876)
at java.lang.Thread.run(Thread.java:744)
我已經做了深刻的谷歌搜索,但沒有有效的解決方案。
@JoshMc再次謝謝:) 這是當我輸入什麼我有 「型.bindings | FINDSTR TI.UNIT1.ENQ.IN」:
TI.UNIT1.ENQ.IN/RefAddr/7/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/17/Content=0
TI.UNIT1.ENQ.IN/RefAddr/13/Content=2`enter code here`
TI.UNIT1.ENQ.IN/RefAddr/3/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/11/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/8/Content=0
TI.UNIT1.ENQ.IN/RefAddr/6/Type=ENC
TI.UNIT1.ENQ.IN/RefAddr/11/Type=MDW
TI.UNIT1.ENQ.IN/RefAddr/18/Type=RCCS
TI.UNIT1.ENQ.IN/RefAddr/9/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/11/Content=false
TI.UNIT1.ENQ.IN/RefAddr/13/Encoding=String
TI.UNIT1.ENQ.IN/FactoryName=com.ibm.mq.jms.MQQueueFactory
TI.UNIT1.ENQ.IN/RefAddr/5/Type=TC
TI.UNIT1.ENQ.IN/RefAddr/6/Content=273
TI.UNIT1.ENQ.IN/RefAddr/10/Type=MDR
TI.UNIT1.ENQ.IN/RefAddr/2/Content=-2
TI.UNIT1.ENQ.IN/RefAddr/17/Type=RTOST
TI.UNIT1.ENQ.IN/RefAddr/19/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/15/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/0/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/4/Type=CCS
TI.UNIT1.ENQ.IN/RefAddr/16/Type=QMGR
TI.UNIT1.ENQ.IN/RefAddr/4/Content=1208
TI.UNIT1.ENQ.IN/RefAddr/0/Content=7
TI.UNIT1.ENQ.IN/RefAddr/18/Content=1208
TI.UNIT1.ENQ.IN/RefAddr/6/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/14/Content=-1
TI.UNIT1.ENQ.IN/RefAddr/17/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/2/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/10/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/9/Content=2
TI.UNIT1.ENQ.IN/RefAddr/3/Type=PER
TI.UNIT1.ENQ.IN/RefAddr/15/Type=PAALD
TI.UNIT1.ENQ.IN/RefAddr/8/Encoding=String
TI.UNIT1.ENQ.IN/ClassName=com.ibm.mq.jms.MQQueue
TI.UNIT1.ENQ.IN/RefAddr/16/Content=
TI.UNIT1.ENQ.IN/RefAddr/12/Content=0
TI.UNIT1.ENQ.IN/RefAddr/4/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/12/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/2/Type=PRI
TI.UNIT1.ENQ.IN/RefAddr/7/Content=1
TI.UNIT1.ENQ.IN/RefAddr/9/Type=MBODY
TI.UNIT1.ENQ.IN/RefAddr/3/Content=-2
TI.UNIT1.ENQ.IN/RefAddr/14/Type=RAALD
TI.UNIT1.ENQ.IN/RefAddr/18/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/14/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/10/Content=false
TI.UNIT1.ENQ.IN/RefAddr/1/Type=EXP
TI.UNIT1.ENQ.IN/RefAddr/8/Type=WCFMT
TI.UNIT1.ENQ.IN/RefAddr/5/Content=0
TI.UNIT1.ENQ.IN/RefAddr/13/Type=RACP
TI.UNIT1.ENQ.IN/RefAddr/1/Content=-2
TI.UNIT1.ENQ.IN/RefAddr/19/Content=1
TI.UNIT1.ENQ.IN/RefAddr/15/Content=-1
TI.UNIT1.ENQ.IN/RefAddr/5/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/16/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/1/Encoding=String
TI.UNIT1.ENQ.IN/RefAddr/0/Type=VER
TI.UNIT1.ENQ.IN/RefAddr/7/Type=FIQ
TI.UNIT1.ENQ.IN/RefAddr/12/Type=MDCTX
TI.UNIT1.ENQ.IN/RefAddr/19/Type=RCNV
你是對的,它錯過了TI.UNIT1.ENQ.IN/RefAddr/16/Content= 中的TI.UNIT1.ENQ.IN。我添加了缺少的QUEUE名稱,如TI.UNIT1.ENQ.IN/RefAddr/16/Content=TI。 UNIT1.ENQ.IN 但我仍然得到相同的以前的錯誤。
非常感謝JoshMc的回覆! – Mac
謝謝@JoshMc!你真了不起! :) – Mac
@Mac您的歡迎。 – JoshMc