`

Spring JMS消息处理-不基于JNDI

阅读更多

        在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队列中了。

  • 大小: 88.1 KB
  • 大小: 57.7 KB
  • 大小: 42.8 KB
  • 大小: 34.5 KB
  • 大小: 74.8 KB
  • 大小: 66.5 KB
分享到:
评论

相关推荐

    Spring JMS 消息处理-基于JNDI

    博客可能涵盖Spring JMS如何处理消息传递失败,以及如何结合JMS与Spring的事务管理。 7. **实战示例**:最后,博主会提供一个实际的示例,展示如何在一个简单的Spring应用中集成JMS,包括创建JNDI资源、配置Spring...

    spring-jms-oracle-aq.rar_oracle aq_spring oracle aq_spring oracl

    如果在处理消息时发生异常,整个事务将被回滚,消息将保留在队列中,等待重新处理。 6. 性能优化: 根据应用程序的需求,你可以调整MessageListenerContainer的属性,如并发消费者数量、接收超时等,以优化性能和...

    Spring-JMS把企业消息处理变容易.doc

    Spring JMS 是一个强大的框架,它极大地简化了Java企业级消息处理。它通过提供一套抽象和模板类,使得开发者能够更加便捷地使用Java消息服务(JMS),并与各种JMS提供者,如IBM的WebSphere MQ进行集成。本文将深入...

    Spring发送接收JMS消息

    **Spring与JMS消息传递** 在Java世界中,Java Message Service (JMS) 是一个标准接口,用于在分布式环境中发送和接收消息。Spring框架提供了一种简单而强大的方式来集成JMS,使得开发者可以轻松地在应用中实现异步...

    spring-jms-4.2.xsd.zip

    例如,`&lt;jee:jndi-lookup&gt;`用于查找JMS连接工厂,`&lt;jms:listener-container&gt;`定义一个监听器容器,`&lt;jms:listener&gt;`定义消息监听器等。 总之,"spring-jms-4.2.xsd.zip"是一个包含了Spring JMS 4.2版本的XML模式...

    Spring+weblogic接收JMS消息

    - Spring通过`org.springframework.jms`包提供了一套完整的JMS抽象层,允许开发者在不直接接触JMS API的情况下进行消息操作。 - `applicationContext-jms.xml`是Spring配置文件,通常包含JMS相关的bean定义,如`...

    spring-framework-3.0.0.M4-with-docs

    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....

    Spring JMS使异步消息变得简单.doc

    通过对比传统JMS实现和Spring JMS,我们可以看到Spring JMS显著减少了开发者处理消息时的代码量和复杂性,使得异步消息处理的实现更为简洁。这不仅降低了出错的可能性,也使得代码更易于测试和维护。Spring JMS的...

    spring-framework-4.3.30.RELEASE-schema.zip

    "jms"(Java Message Service)模块是Spring对消息中间件的支持,用于实现异步通信和解耦。通过定义消息生产者和消费者,Spring JMS提供了一种在分布式系统中可靠传递信息的方式,增强了系统的可扩展性和可靠性。 ...

    spring,weblogic配置jms

    &lt;jee:jndi-lookup id="jmsConnectionFactory" jndi-name="jms/MyConnectionFactory" resource-ref="true"/&gt; &lt;jee:jndi-lookup id="myQueue" jndi-name="jms/MyQueue" resource-ref="true"/&gt; ``` 4. **配置Spring的...

    Spring JMS

    Spring JMS 是一个基于 Java 消息服务(JMS)的框架,它提供了一个简洁的方式来使用 JMS API。Spring JMS 框架提供了一个抽象层,简化了 JMS 的使用,使得开发者可以更容易地使用 JMS。 Spring JMS 的特点是提供了...

    spring jms tomcat 异步消息传递入门实例

    4. **创建消息消费者**:为了接收消息,你需要创建一个`MessageListener`实现,如`MessageListenerAdapter`,它将监听指定的目的地,并调用你提供的方法来处理消息。在Spring配置中,将监听器绑定到目标目的地。 5....

    spring整合JMS-居于ActiveMQ实现

    Spring的`MessageListenerAdapter`使得监听器的实现变得简单,只需要提供处理消息的方法即可。例如: ```java @Component public class MyMessageListener { @JmsListener(destination = "myQueue") public void ...

    使用Spring JMS轻松实现异步消息传递.pdf

    Spring JMS 是 Spring 框架的一部分,它提供了一种简单且灵活的方式来处理 Java 消息服务 (JMS)。在面向服务架构 (SOA) 中,异步消息传递是关键组件,特别是在企业级系统间通信,特别是与外部系统交互时。Java 消息...

    spring-jms使用queue发送消息简单例子

    在Spring框架中,Spring JMS(Java Message Service)是一个用于集成JMS的模块,它提供了一个抽象层,简化了与消息中间件的交互。在这个"spring-jms使用queue发送消息简单例子"中,我们将深入探讨如何使用Spring JMS...

Global site tag (gtag.js) - Google Analytics