0

我有一个 Web 应用程序部署在 Websphere AS 8.0(主机 A)中,使用 spring-jms 客户端访问远程机器(主机 B)中 WMQ 7.0 中的队列。我已经按照 WAS 8 管理指南中的说明,使用资源链接下的 JMS Provider 在 JNDI 中配置了 WMQ ConnectionFactory 和 WMQ 队列,并将 WMQ 作为消息传递提供者。我还使用测试连接按钮对其进行了测试。它工作正常。我已经按照 Spring JMS 配置配置了 JNDI 模板和 QueueConnectionFactory 和 Queue(Destination)、DestinationResolver 和 JMSTemplate。

但是,当我尝试运行我的服务器并通过 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 [B@775e20e, 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)

我尝试打印我的默认目标名称,它打印为 queue://QM_MGR/Q1,其中 QM_MGR 是队列管理器的名称,Q1 是 WMQ 中的队列名称。

请注意,我没有在 WMQ 中配置任何 JNDI,在 JNDI 模板中没有配置任何 InitialContextFactory 和 Provider URL,在 web.xml 中没有配置资源引用。

我已经尝试了以上所有方法并失败了。所以我删除了上面提到的配置。

任何人都可以通过指出我为什么会遇到此异常,我缺少什么或详细说明避免此异常的步骤来帮助我吗?提前致谢。

4

2 回答 2

0

尽管您已经在 J​​NDI 中定义了连接工厂和目的地,但您必须定义 MQ 对应项。例如,一个名为 QM_MGR 的 MQ 队列管理器必须与一个 SVRCONN 通道和一个在端口(比如 1414)上运行的侦听器一起创建。此外,还必须在该队列管理器上创建一个名为 Q1 的队列。

请检查您是否已完成上述操作。

于 2012-06-18T08:28:13.477 回答
0

我已经解决了这个问题。导致错误的是 JNDI 命名空间。谢谢大家。

于 2012-06-21T15:03:36.853 回答