`
newleague
  • 浏览: 1504494 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

JMS命名空间支持

    博客分类:
  • JMS
 
阅读更多

Spring 2.5引入了XML命名空间以简化JMS的配置。使用JMS命名空间元素时,需要引用如下的JMS Schema:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jms="http://www.springframework.org/schema/jms"
       xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-2.5.xsd">

<!-- <bean/> definitions here -->

</beans>

这个命名空间由两级元素组成:<listener-container/><jca-listener-container/>,它们都可以包含一个或这个多个 <listener/> 子元素。下面是一个基本配置的示例,包含两个******。

<jms:listener-container>

    <jms:listener destination="queue.orders" ref="orderService" method="placeOrder"/>

    <jms:listener destination="queue.confirmations" ref="confirmationLogger" method="log"/>

</jms:listener-container>

上面的例子等同于在 第 19.4.4 节 “MessageListenerAdapter 的示例中,定义两个不同的******容器和两个不同的 MessageListenerAdapter 。除了上面的属性外,listener 元素还具有几个可选的属性。下面的表格列出了所有的属性:

表 19.1. JMS listener 元素的属性

属性 描述
id

******容器的Bean名称。如果没有指定,将自动生成一个Bean名称。

destination (必须)

******目的地的名称,由 DestinationResolver 的策略决定。

ref (必须)

处理对象的Bean名称

method

处理器中被调用的方法名。如果 ref 指向 MessageListener 或者 Spring SessionAwareMessageListener,则这个属性可以被忽略。

response-destination

默认的响应目的地是发送响应消息抵达的目的地。 这用于请求消息没有包含"JMSReplyTo"域的情况。响应目的地类型被******容器的"destination-type"属性决定。记住:这仅仅适用于有返回值的******方法,因为每个结果对象都会被转化成响应消息。

subscription

持久订阅的名称,如果需要的话。

selector

******的一个可选的消息选择器。


<listener-container/>元素也有几个可选的属性。 这些属性允许像 基本的 JMS设置和资源引用一样来定义不同的策略 (例如 taskExecutordestinationResolver)。 使用这些属性,可以定义很广泛的定制******容器,同时仍享有命名空间的便利。

<jms:listener-container connection-factory="myConnectionFactory"
                        task-executor="myTaskExecutor"
                        destination-resolver="myDestinationResolver"
                        transaction-manager="myTransactionManager"
                        concurrency="10">

    <jms:listener destination="queue.orders" ref="orderService" method="placeOrder"/>

    <jms:listener destination="queue.confirmations" ref="confirmationLogger" method="log"/>

</jms:listener-container>

下面的表格描述了所有可用的属性。参考 AbstractMessageListenerContainer 类和具体子类的Javadoc来了解每个属性的细节。这部分的Javadoc也提高那个了事务选择和消息传输场景的讨论。

表 19.2. JMS <listener-container/> 元素的属性

属性 描述
container-type

******容器的类型。可用的选项是: defaultsimpledefault102 或者 simple102 (默认值是 'default')。

connection-factory

JMS ConnectionFactory Bean的引用(默认的Bean名称是 'connectionFactory')。

task-executor

JMS******调用者Spring TaskExecutor 的引用。

destination-resolver

DestinationResolver 策略的引用,用以解析JMS Destinations

message-converter

MessageConverter 策略的引用,用以转换JMS Messages 成******方法的参数。默认值是 SimpleMessageConverter

destination-type

******的JMS目的地类型。可用的选项包含: queuetopic 或者 durableTopic (默认值是 'queue')。

client-id

这个******容器在JMS客户端的id。

acknowledge

本地JMS应答模式。可用的选项包含: autoclientdups-ok 或者 transacted (默认值是 'auto')。 'transacted' 的值可激活本地事务性 Session。 也可以通过指定下面介绍的 transaction-manager 属性。

transaction-manager

Spring PlatformTransactionManager 的引用。

concurrency

每个******可激活的Session最大并发数。

prefetch

加载进每个Session的最大消息数。记住增加这个值会造成并发空闲。


使用“jms” Schema支持来配置基于JCA的******容器很相似。

<jms:jca-listener-container resource-adapter="myResourceAdapter"
                            destination-resolver="myDestinationResolver"
                            transaction-manager="myTransactionManager"
                            concurrency="10">

    <jms:listener destination="queue.orders" ref="myMessageListener"/>

</jms:jca-listener-container>

JCA可用的配置选项描述如下表:

表 19.3. JMS <jca-listener-container/> 元素的属性

属性 描述
resource-adapter

JCA ResourceAdapter Bean 的一个引用(默认的Bean名称是'resourceAdapter')。

activation-spec-factory

JmsActivationSpecFactory 的一个引用。 默认自动检测JMS提供者和它的 ActivationSpec 类 (参考 DefaultJmsActivationSpecFactory

destination-resolver

DestinationResolver 策略的引用,用以解析JMS Destinations

message-converter

MessageConverter 策略的引用,用以转换JMS Messages 成******方法参数。 默认值是 SimpleMessageConverter

destination-type

******的JMS目的地类型。可用的选项包含 queuetopic 或者 durableTopic 默认是 'queue')。

client-id

这个******容器在JMS客户端的id。

acknowledge

本地JMS应答模式。可用的选项包含:autoclientdups-ok 或者 transacted (默认值是 'auto')。 'transacted' 的值可激活本地事务性 Session。 也可以通过指定下面介绍的 transaction-manager 属性

transaction-manager

Spring JtaTransactionManager 或者 javax.transaction.TransactionManager 的引用,用以为传进的消息应用XA事务。 如果没有指定,将使用本地应答模型(参见“acknowledge”属性)。

concurrency

每个******可激活的Session最大并发数。

prefetch

加载进每个Session的最大消息数。记住增加这个值会造成并发空闲。

分享到:
评论

相关推荐

    Spring中文帮助文档

    2.3.3. 对bean命名pointcut( bean name pointcut element)的支持 2.3.4. 对AspectJ装载时织入(AspectJ load-time weaving)的支持 2.4. 中间层 2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. 对Websphere ...

    Spring API

    2.3.3. 对bean命名pointcut( bean name pointcut element)的支持 2.3.4. 对AspectJ装载时织入(AspectJ load-time weaving)的支持 2.4. 中间层 2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. 对Websphere ...

    jms.rar_weblogic8 spring jms

    例如,创建一个JMS模块,定义队列或主题,然后将它们绑定到应用程序的JNDI命名空间中。 接下来,我们关注Spring框架中的JMS配置。文件“spring-jms.xml”通常包含了与JMS相关的配置。在这个文件中,我们可以定义`...

    JMS侦听器pdf

    - JMSAdmin工具通过读取配置文件(如`JMSAdmin.config`)来创建目标和连接库,并将它们绑定到JNDI命名空间内。用户可以通过交互式输入或预定义的文本文件来指定这些配置。 #### 五、结论 通过对JMS侦听器的概念、...

    jms specification

    - **分发实现**: 您可以向第三方分发规范的实现以供测试和评估使用,条件是此类实现不得修改、子集、超集或其他方式扩展许可方命名空间,或包含该命名空间内的公共或受保护包、类、Java接口、字段或方法,除非这些...

    基于Jboss的jms编程

    在提供的配置示例中,使用了Spring的命名空间来定义不同的bean,如`JndiTemplate`用于JNDI查找,`JmsTemplate`用于发送和接收消息,以及`SingleConnectionFactory`作为连接工厂。配置文件中,`JndiTemplate`指定了...

    WebLogic下配置的JMS.+例子

    - 将创建的JMS组件(如目的地和连接工厂)发布到应用服务器的全局JNDI命名空间,以便应用程序可以通过JNDI查找并使用它们。 6. **编写JMS应用程序**: - 使用JMS API编写生产者和消费者代码。生产者创建并发送...

    was6培训资料:L08-WASv6_Service Integration and JMS.pdf

    - 探索服务集成资源与JMS资源之间的映射关系,并了解这些资源如何在WebSphere应用服务器的命名空间中绑定。 **二、实验内容概述** - **实验结构** - 实验分为四个主要部分,另加一个可选练习: 1. **安装MDB...

    MQ JMS 发布订阅配置、代码

    在MQ资源管理器中,创建一个基于文件系统的JNDI命名空间,添加初始上下文,以便应用程序能够查找和绑定MQ资源。 通过以上步骤,你可以配置一个简单的MQ JMS发布订阅环境,允许不同应用程序通过消息通信。这个过程...

    sun-jms权威指南

    - **通过JNDI使用受管理对象**:通过Java命名和目录接口查找JMS对象。 - **对象存储库**:存储JMS对象的名称空间。 - **管理工具**: - 提供图形界面或命令行工具来管理消息队列。 - **产品功能**: - **集成...

    spring-framework-3.2.0.RC2-schema.zip

    `jms`命名空间中的元素如 `&lt;jee:jndi-lookup&gt;`、`&lt;jms:listener-container&gt;`等,可以方便地配置消息监听器和消息源,帮助实现异步处理和解耦。 "util"模块提供了一些实用工具类,如集合、属性文件的处理等。在XML ...

    JNDI的包 java命名与服务

    JNDI 使用一个层次化的命名空间,类似于文件系统的路径。根上下文(root context)是命名层次结构的起点,可以有多个子上下文,每个子上下文都可以包含自己的名字和对象。 **4. JNDI在企业级应用中的应用** - **...

    《Spring In Action》

    1. **JMS配置命名空间**: 引入了针对JMS的专用配置命名空间。 2. **上下文配置命名空间**: 改进了上下文配置命名空间,例如 `&lt;aop:spring-configured&gt;` 移动到 `&lt;context:spring-configured&gt;`。 3. **基于注解的配置...

    spring-5.2.9.RELEASE-schema.zip

    `jms:`命名空间允许配置消息生产者、消费者,以及消息代理的相关参数,帮助实现基于消息的可靠通信。 5. **Cache模块**: 提供了缓存支持,可以有效地提高系统的响应速度。通过`cache:`命名空间,可以配置各种缓存...

    springonline_final_050108.pdf

    - **其他命名空间**:除了以上几个主要的命名空间外,Spring还提供了针对数据库访问(jdbc、orm)、消息传递(jms、rabbit)、远程调用(remoting)等领域的专用命名空间。 #### 四、Spring配置示例 以下是一个...

    Spring2.0和XFire1.2.6整合案例

    通过设置服务接口、实现类和命名空间,Spring将能够自动处理Web服务的生命周期。 3. **定义Web服务接口**:创建一个Java接口,该接口声明了Web服务的端点方法。这些方法应该遵循JAX-RPC或JAX-WS规范。 4. **实现...

    bea jndi 培训

    WebLogic Server (WLS) 提供了对JNDI的支持,允许客户端访问其命名服务,使对象能够在WLS命名空间中可用,并从该命名空间中检索对象。WLS JNDI实现还支持集群内的JNDI树复制,确保在分布式环境中数据的一致性。 **...

    jndi-1.2.1.jar.zip

    1. **Naming Context**:命名上下文是JNDI的核心组件,它代表了一个命名空间。在这个空间中,可以有多个对象,每个对象都有一个唯一的名称。命名上下文可以嵌套,形成层次化的命名结构。 2. **Naming Operations**...

    Azure事件中心Java编程的那些事1

    旧SDK则是基于QPID.JMS的老版本`eventhubs-client`,位于`com.microsoft.eventhubs.client`命名空间。此外,还有一个`EventProcessorHost`的Java实现,即`azure-eventhubs-eph`,用于简化事件处理器的管理。 新SDK...

Global site tag (gtag.js) - Google Analytics