2012-06-17 56 views
0

我有一個Web應用程序部署在Websphere AS 8.0(Host A)中,使用spring-jms客戶端訪問遠程計算機(主機B)中的WMQ 7.0中的隊列。根據WAS 8管理指南中的說明,我使用資源下的JMS提供程序將WMQ ConnectionFactory和WMQ隊列配置到JNDI中,並將WMQ作爲消息傳遞提供程序進行連接。我也使用測試連接按鈕進行了測試。它工作正常。我已經按照Spring JMS配置配置了JNDI模板和QueueConnectionFactory和Queue(Destination),DestinationResolver和JMSTemplate。來自WAS 8的Spring JMS客戶端訪問WMQ拋出DetailedInvalidDestinationException

然而,當我試圖通過JNDI來運行我的服務器和接入WMQ它拋出以下異常:

exception message JMSCC0085: A destination was not specified.; nested exception is **com.ibm.msg.client.jms.DetailedInvalidDestinationException**: JMSCC0085: A destination was not specified. with params [[email protected], 1c02f7440b8438e5] 
org.springframework.jms.InvalidDestinationException:JMSCC0085:**A destination was not specified**.; nested exception is com.ibm.msg.client.jms.DetailedInvalidDestinationException:**JMSCC0085:A destination was not specified.** 
at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:469) 
at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:534) 
at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:526) 

我試圖打印我的默認目的地名稱,並將其作爲打印隊列:// QM_MGR/Q1,其中QM_MGR是隊列管理器的名稱,Q1是WMQ中隊列的名稱。

請注意,我沒有在WMQ中配置任何JNDI,沒有在JNDI模板和web.xml中的resource-ref中配置任何InitialContextFactory和Provider URL。

我已經嘗試了以上所有並失敗。所以我刪除了上述配置。

任何人都可以幫我指出爲什麼我得到這個異常,我缺少什麼或詳細說明避免這種異常的步驟?提前致謝。

+0

請幫助我,因爲我在過去4天一直在打破我的頭。 – user1461933

回答

0

雖然您已經在JNDI中定義了連接工廠和目標,但您必須定義MQ對應項。例如,一個名爲QM_MGR的MQ隊列管理器必須與一個SVRCONN通道和一個運行在端口上的偵聽器一起創建,比如說1414.還必須在該隊列管理器上創建一個名爲Q1的隊列。

請檢查您是否完成上述操作。

+0

感謝您的回覆。我已經創建了以下MQ計數器部分:隊列管理器:QM_MGR,隊列:Q1和Q2,通道:SYSTEM.AAA.CONFIG,端口:1416.還有什麼我錯過了? – user1461933

+0

就是這樣。您可以使用MQ示例amqsputc測試它以檢查配置是否正確。 1)在命令提示符下(假設Windows操作系統)使用SET MQSERVER = SYSTEM.AAA.CONFIG/TCP/<輸入主機名或IP地址>(1416)設置MQSERVER環境變量。(2)然後運行命令amqsputc Q1 QM_MGR。這將允許您發送消息到隊列Q1。 – Shashi

+0

感謝您的快速回復。我的WAS和WMQ都在不同的機器上。如何從WMQ所在的不同機器測試以上內容?我需要從我的機器上運行命令的任何罐子嗎?提前致謝。 – user1461933

0

我修復了這個問題。這是導致錯誤的JNDI命名空間。謝謝大家。

相關問題