在Spring JMS消息处理-基于JNDI一文中,JMS和WebSphere MQ中间是有一层JNDI的,但如果在实际应用中不想或者不需要JDNI,又该怎么处理呢?
下面还是一步步操作讲解吧。
一.准备环境
打开下载下来的工程,找到batch下的Appconfig.txt文件,将其拷贝到WebSphere MQ的安装目录下的bin目录中(如C:\Program Files\IBM\WebSphere MQ\bin),再打开cmd窗口,运行batch文件夹中的 mqsetup.bat 文件(当然,如果在 path 环境变量中设置好 MQ 安装的 bin 文件夹,如IBM\WebSphere MQ\bin,就无需将Appconfig.txt文件拷贝到WebSphere MQ的安装目录下的bin目录中)。
运行了批文件之后,打开 MQ Explorer 并检查已经创建的队列管理器和队列,请选择 Start -> Programs -> IBM WebSphere MQ -> WebSphere MQ Explorer。下图显示出示例应用程序 QueueManagerMQJMS.QManager 已经创建并正在运行。
但不知为什么,发现MQJMS.QManager队列管理器没有侦听器和服务器通道,手动创建如下:
最后,还有需要设置队列管理器MQJMS.QManager的通道认证记录设为“已禁用”。
二.修改JMS配置文件
将工程的JMS配置文件修改成如下样子。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//Spring//DTD Bean//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <!-- Application Context --> <beans> <!-- Spring JMS Queue Connection Factory --> <bean id="jmsQueueConnectionFactory" class="com.ibm.mq.jms.MQConnectionFactory"> <property name="connectionNameList" value="bijian-PC(1416)" /> <property name="CCSID" value="1051"/> <property name="queueManager" value="MQJMS.QManager"/> <property name="channel" value="DC.SVRCONN"/> <property name="transportType" value="1"/> </bean> <!-- JMS Queue Template --> <bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory"> <ref bean="jmsQueueConnectionFactory"/> </property> </bean> <bean id="jmsSender" class="springexample.client.JMSSender"> <property name="jmsTemplate"> <ref bean="jmsQueueTemplate"/> </property> </bean> <bean id="jmsReceiver" class="springexample.client.JMSReceiver"> <property name="jmsTemplate"> <ref bean="jmsQueueTemplate"/> </property> </bean> </beans>
三.运行验证
运行SendMQSpringJMS文件,控制台输出如下信息:
SendMQSpringJMS started Classpath loaded SendMQSpringJMS end
此时,打开MQ Explorer,将会看到消息已成功发送到队列中。
再运行ReceiveMQSpringJMS,将消息从RequestResponseQueue队列中取出,运行后控制台输出如下信息:
ReceiveMQSpringJMS started Classpath loaded Message Received -->JMSMessageID:ID:414d51204d514a4d532e514d616e61673f795a5720006502,text:This is a sample message ReceiveMQSpringJMS end
再打开MQ Explorer,将会看到消息已被取出,不在RequestResponseQueue队列中了。
相关推荐
博客可能涵盖Spring JMS如何处理消息传递失败,以及如何结合JMS与Spring的事务管理。 7. **实战示例**:最后,博主会提供一个实际的示例,展示如何在一个简单的Spring应用中集成JMS,包括创建JNDI资源、配置Spring...
如果在处理消息时发生异常,整个事务将被回滚,消息将保留在队列中,等待重新处理。 6. 性能优化: 根据应用程序的需求,你可以调整MessageListenerContainer的属性,如并发消费者数量、接收超时等,以优化性能和...
Spring JMS 是一个强大的框架,它极大地简化了Java企业级消息处理。它通过提供一套抽象和模板类,使得开发者能够更加便捷地使用Java消息服务(JMS),并与各种JMS提供者,如IBM的WebSphere MQ进行集成。本文将深入...
**Spring与JMS消息传递** 在Java世界中,Java Message Service (JMS) 是一个标准接口,用于在分布式环境中发送和接收消息。Spring框架提供了一种简单而强大的方式来集成JMS,使得开发者可以轻松地在应用中实现异步...
例如,`<jee:jndi-lookup>`用于查找JMS连接工厂,`<jms:listener-container>`定义一个监听器容器,`<jms:listener>`定义消息监听器等。 总之,"spring-jms-4.2.xsd.zip"是一个包含了Spring JMS 4.2版本的XML模式...
- Spring通过`org.springframework.jms`包提供了一套完整的JMS抽象层,允许开发者在不直接接触JMS API的情况下进行消息操作。 - `applicationContext-jms.xml`是Spring配置文件,通常包含JMS相关的bean定义,如`...
org.springframework.jms-3.0.0.M4.jar: 为简化JMS API的使用而作的简单封装 org.springframework.beans-3.0.0.M4.jar: SpringIoC的基础实现 org.springframework.core-3.0.0.M4.jar: 提供的基础核心功能 org....
通过对比传统JMS实现和Spring JMS,我们可以看到Spring JMS显著减少了开发者处理消息时的代码量和复杂性,使得异步消息处理的实现更为简洁。这不仅降低了出错的可能性,也使得代码更易于测试和维护。Spring JMS的...
"jms"(Java Message Service)模块是Spring对消息中间件的支持,用于实现异步通信和解耦。通过定义消息生产者和消费者,Spring JMS提供了一种在分布式系统中可靠传递信息的方式,增强了系统的可扩展性和可靠性。 ...
<jee:jndi-lookup id="jmsConnectionFactory" jndi-name="jms/MyConnectionFactory" resource-ref="true"/> <jee:jndi-lookup id="myQueue" jndi-name="jms/MyQueue" resource-ref="true"/> ``` 4. **配置Spring的...
Spring JMS 是一个基于 Java 消息服务(JMS)的框架,它提供了一个简洁的方式来使用 JMS API。Spring JMS 框架提供了一个抽象层,简化了 JMS 的使用,使得开发者可以更容易地使用 JMS。 Spring JMS 的特点是提供了...
4. **创建消息消费者**:为了接收消息,你需要创建一个`MessageListener`实现,如`MessageListenerAdapter`,它将监听指定的目的地,并调用你提供的方法来处理消息。在Spring配置中,将监听器绑定到目标目的地。 5....
Spring的`MessageListenerAdapter`使得监听器的实现变得简单,只需要提供处理消息的方法即可。例如: ```java @Component public class MyMessageListener { @JmsListener(destination = "myQueue") public void ...
Spring JMS 是 Spring 框架的一部分,它提供了一种简单且灵活的方式来处理 Java 消息服务 (JMS)。在面向服务架构 (SOA) 中,异步消息传递是关键组件,特别是在企业级系统间通信,特别是与外部系统交互时。Java 消息...
在Spring框架中,Spring JMS(Java Message Service)是一个用于集成JMS的模块,它提供了一个抽象层,简化了与消息中间件的交互。在这个"spring-jms使用queue发送消息简单例子"中,我们将深入探讨如何使用Spring JMS...