创建一个MessageDriven Bean的多个实例

时间:2011-08-31 20:48:42

标签: java-ee jms ejb-3.0 message-driven-bean

我在两个不同的应用程序中使用MessageDriven Bean,我希望它们是使用单独队列的单独实例。

This SO question证实了我的观点,即我应该能够在部署描述符中设置它(ejb-jar.xml?glassfish-ejb-jar.xml?)。也许简单地覆盖MDB注释中的mappedName就足够了?

如果有人能指出我在Glassfish中如何做到这一点的一个很好的例子(或者如果我在这里混淆了一些事情就澄清问题),我会感激不尽。

更新

为了澄清,有一个名为AnalyzerBean的MDB和名为AnalyzerHelper的资源(前者从队列中读取,后者写入其中)。我是否认为<ejb-ref-name>对应name属性而<jndi-name>对应mappedName属性?

我的glassfish-ejb-jar.xml现在看起来像这样。我正在尝试为Resource和MDB提供唯一的JNDI名称,但我一直在收到错误:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-ejb-jar PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 EJB 3.1//EN" "http://glassfish.org/dtds/glassfish-ejb-jar_3_1-1.dtd">
<glassfish-ejb-jar>
   <enterprise-beans>
   <ejb>
     <ejb-name>analyzerBean</ejb-name>
     <jndi-name>analyzerBean</jndi-name>

     <ejb-ref>
       <ejb-ref-name>analyzerBean</ejb-ref-name>
       <jndi-name>analyzerBeanQueue1</jndi-name>
     </ejb-ref>

     <resource-ref>
       <res-ref-name>analyzerHelper</res-ref-name>
       <jndi-name>analyzerHelperResource1</jndi-name>
     </resource-ref>
   </ejb>
   </enterprise-beans>
</glassfish-ejb-jar>

0 个答案:

没有答案