У меня есть сессионный компонент, определенный в 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, все становится беспорядочным, предположительно из-за того, что я получаю доступ к домашнему интерфейсу.
Есть идеи, что я могу упустить? Заранее спасибо.
упакуйте домашний и удаленный интерфейсы в клиентский jar-файл и поместите его в путь к классам клиента
поместите jboss-client.jar
в путь к классам клиента
поместите файл 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
выполнить поиск имени JNDI удаленного интерфейса (что-то вроде этого по умолчанию с JBoss)
Context c = new InitialContext();
return (Echo) c.lookup("EchoBean/remote"); // используем myEarName/HelloWorldBean/remote в ухе