Как получить новые имена JNDI (особенно ConnectionFactory) - PullRequest
1 голос
/ 22 сентября 2011

Я обновился до JBoss 7.0.1, и мы используем следующий поиск JNDI, чтобы получить соединение с очередью сообщений HornetQ.

InitialContext jndiContext = new InitialContext();
QueueConnectionFactory qf = (QueueConnectionFactory) jndiContext.lookup( "ConnectionFactory" );

Это приводит к NameNotFoundException при использовании с JBoss 7.Я также попробовал следующее:

  • java: jms / ConnectionFactory
  • java: env / ConnectionFactory

.. и некоторые другие.Но я думаю, что догадки не уведут меня далеко.Как получить новые имена JNDI, которые не зарегистрированы в консоли (например, мои EJB-компоненты)?

С уважением, Себастьян

Ответы [ 2 ]

0 голосов
/ 22 сентября 2011

Решено:

Вся часть HornetQ была деактивирована по умолчанию в JBoss 7. Пришлось скопировать соответствующую часть из standalone-preview.xml в standalone.xml и переместить все из META-INF/hornetq-jms.xml в конфигурацию JBoss.

Теперь у меня есть ConnectionFactory, настроенный так:

        <jms-connection-factories>
            <connection-factory name="InVmConnectionFactory">
                <connectors>
                    <connector-ref connector-name="in-vm"/>
                </connectors>
                <entries>
                    <entry name="ConnectionFactory"/>
                </entries>
            </connection-factory>
        </jms-connection-factories>

, и я могу использовать его, выполнив поиск JNDI:

QueueConnectionFactory qf = (QueueConnectionFactory) jndiContext.lookup( "java:/ConnectionFactory" );

Это вызвано ошибка в конфигурации JMS JBoss 7. Кажется, что исправлено в 7.0.1, использовала эту версию, не заметила никаких исправлений - однако, вышеуказанная конфигурация работает.

0 голосов
/ 22 сентября 2011

Попробуйте

Java: JBoss / ConnectionFactory

Не проверял, но попробовал бы, так как https://docs.jboss.org/author/display/AS7/How+do+I+migrate+my+application+from+AS5+or+AS6+to+AS7 говорит:

Безусловные относительные имена, такие как «DefaultDS» или «jdbc / DefaultDS» должен быть определен относительно "java: comp / env", "java: module / env" или «java: jboss / env», в зависимости от контекста.

Исправление и редактирование: Посмотрел мою установку и исправил:

Java: / ConnectionFactory

как определено в domain.xml также.

...