途径一:通过MQ简易的PUT方式实现。创建一个MQQueueManager,进而使用它去创建一个MQQueue,接受使用MQQueue的put方法向MQ实际目标队列中放入消息,实验的结果是表明只支持MQMassege这种类型的消息。

途径二:通过JMS方法实现。首先创建一个MQQueueConnectionFactory,接着依次创建QueueConnection、QueueSession、QueueSender对象,最后利用QueueSender的send方法将消息发送到目标队列。此方法同样需要用到Queue对象。

对于途径二,IBM的《WebSphere MQ Using Java》文档中介绍了两种不同方法,一种是运行时创建连接工厂;另一种是从JNDI 上下文中取查找连接工厂对象。

方法二在使用前需要提供JNDI的Context定义,如果没有,则要额外地使用IBM提供的“WebSphere MQ JMS administration tool”工具创建需要的JNDI上下文(创建方法见另一篇blog:《使用【WebSphere MQ JMS administration tool】工具创建JNDI命名空间》),而方法一不需要。这样看来,方法二复杂,但是它能从别的Naming System(Service Provider) 提供的命名服务中获得资源,例如应用程序可以从WAS的JNDI命名空间中获得想要的连接工厂对象,这有利于大型项目的集成;方法一简单,能够在运行时动态地生产连接工厂对象,但是功能有限,且不利于资源的管理,一般用于简单的应用程序;