Согласно java ee Tutorial можно получить доступ к EJB
через jndi
с:доступа к EJB через JNDI поиск
java:global[/application name]/module name/enterprise bean name[/interface name]
Я использую сервер Jboss
приложений и при попытке получения доступа к EJB
имени FirstBean
, который реализует на интерфейсе CustomerData
с:
bean = (CustomerData) context.lookup("java:global/EJBTest/FirstBean/CustomerData");
он бросает исключение:
Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
Если добавить строку:
properties.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
он бросает другого Exception:
No provider URL configured for connection
я достиг к нему доступ с помощью Jboss
спецификацию:
bean = (CustomerData) context.lookup("ejb:/EJBTest//FirstBean!com.al.ejbtest.CustomerData");
Как можно получить его, используя стандартную спецификацию java ee speci и особенно только с косой чертой, а не с восклицательным знаком? Нужны ли какие-либо переменные среды?
Что 'Jboss' версию вы используете? – Ilya
jboss-as-7.1.1.Final – arjacsoh
Откуда вы пытаетесь получить доступ к EJB? Если вы попробуете его с помощью удаленного ejb-клиента, вам нужно проверить документацию этого клиента. Например https://docs.jboss.org/author/display/AS71/Remote+EJB+invocations+via+JNDI+-+EJB+client+API+or+remote-naming+project?_sscc=t –