Создание нескольких экземпляров одного компонента MessageDriven - PullRequest
0 голосов
/ 01 сентября 2011

Я использую компонент MessageDriven в двух разных приложениях, и я хотел бы, чтобы они были отдельными экземплярами, использующими отдельные очереди.

Этот вопрос 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 теперь выглядит примерно так.Я пытаюсь дать уникальные имена JNDI для ресурса и MDB, но я получаю ошибки:

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