Как получить доступ к удаленному компоненту EJB 2.1 на JBoss 4.x из внешнего контейнера

У меня есть сессионный компонент, определенный в ejb-jar.xml и jboss.xml. Он определяется с помощью ejb-name, удаленного и домашнего интерфейса и реализации.

Когда я запускаю JBoss и просматриваю дерево JNDI, домашний интерфейс кажется там под именем JNDI ejb-name (I ' мы попытались определить jndi-name и local-jndi-name в ejb-jar.xml без видимого эффекта). Но удаленный интерфейс не отображается в списке JNDI.

Если я пытаюсь получить доступ к ejb-имени с помощью поиска JNDI из JUnit TestCase, все становится беспорядочным, предположительно из-за того, что я получаю доступ к домашнему интерфейсу.

Есть идеи, что я могу упустить? Заранее спасибо.

1
задан Pascal Thivent 2 September 2010 в 01:06
поделиться

1 ответ

  1. упакуйте домашний и удаленный интерфейсы в клиентский jar-файл и поместите его в путь к классам клиента

  2. поместите jboss-client.jar в путь к классам клиента

  3. поместите файл jndi.properties со следующим содержимым в путь к классам клиента

     java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
    java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
    java.naming.provider.url=jnp://localhost:1099
     
  4. выполнить поиск имени JNDI удаленного интерфейса (что-то вроде этого по умолчанию с JBoss)

     Context c = new InitialContext();
    return (Echo) c.lookup("EchoBean/remote"); // используем myEarName/HelloWorldBean/remote в ухе
     
2
ответ дан 2 September 2019 в 22:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: