我在两个不同的应用程序中使用 MessageDriven Bean,我希望它们成为使用单独队列的单独实例。
这个 SO question证实了我的想法,即我应该能够在部署描述符中进行设置(ejb-jar.xml?glassfish-ejb-jar.xml?)。也许简单地覆盖mappedName
MDB 注释中的 就足够了?
如果有人能指出如何在 Glassfish 中执行此操作的一个很好的示例,我将不胜感激(或者如果我在这里混淆了问题,请澄清问题)。
更新:
澄清一下,调用了 MDBAnalyzerBean
和调用了 Resource AnalyzerHelper
(前者从队列中读取,后者写入队列)。我是否正确假设<ejb-ref-name>
对应于name
属性并<jndi-name>
对应于mappedName
属性?
我的 glassfish-ejb-jar.xml 现在看起来像这样。我正在尝试为资源和 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>