2 つの異なるアプリケーションで MessageDriven Bean を使用していますが、それらを別々のキューを使用して別々のインスタンスにしたいと考えています。
この SO の質問は、展開記述子 (ejb-jar.xml? glassfish-ejb-jar.xml?) でこれを設定できるはずであるという私の考えを確認しました。おそらくmappedName
、MDB のアノテーションでオーバーライドするだけで十分でしょうか?
誰かがGlassfishでこれを行う方法の良い例を教えてくれたらありがたいです(または、ここで混乱している場合は問題を明確にしてください).
アップデート:
明確にするために、呼び出される MDB と呼び出されるAnalyzerBean
リソースがあります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>