Конечная точка для EJB, развернутого на JBOSS - PullRequest
1 голос
/ 25 июля 2011

Я развернул ejb в файле войны (не в файле ear).Ранее я успешно использовал ejb, развернутый в файле ear, но теперь получаю исключение javax.naming.NameNotFoundException, поскольку мой EJB размещен в файле war.Если мое веб-приложение называется SpeechServices, а bean-компонент находится в пакете com.xyz.ejb и его имя - Service, то какую строку поиска JNDI я должен использовать?Я сейчас использую следующее.

ServiceRemote remote = (ServiceRemote) ct.lookup("SpeechServices/Service/remote-com.xyz.ejb.ServiceRemote");

Пожалуйста, помогите мне исправить ошибку в приведенном выше заявлении.

Мой полный код следующий, который работает для подключения к ejbs, если ониухо,

        Properties env = new Properties();
        env.put(Context.INITIAL_CONTEXT_FACTORY,
                "org.jnp.interfaces.NamingContextFactory");
        env.put(Context.URL_PKG_PREFIXES,
                "org.jboss.naming:org.jnp.interfaces");
        env.put(Context.PROVIDER_URL, "jnp://localhost:1099");
        env.put(Context.SECURITY_PRINCIPAL, "admin");
        env.put(Context.SECURITY_CREDENTIALS, "admin");
        env.setProperty(Context.INITIAL_CONTEXT_FACTORY,
                "org.jboss.security.jndi.JndiLoginInitialContextFactory");
        InitialContext ct = new InitialContext(env);
        ServiceRemote remote = (ServiceRemote) ct.lookup("SpeechServices/Service/remote-com.xyz.ejb.ServiceRemote");
        System.out.println(remote.parseNotes(null, null, null));

Ответы [ 2 ]

0 голосов
/ 25 июля 2011

Убедитесь, что вы обновили файл web.xml для использования

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"> 

Я думаю, что в спецификации сказано, что EJB не обрабатываются в Java EE 6, если это не сделано в вашем файле web.xml.

0 голосов
/ 25 июля 2011

Проверьте JNDI, чтобы убедиться, что вы используете правильный ключ. Для этого:

  1. Доступ JBoss: service = JNDIView в консоли JMX
  2. invoke list () method
  3. Проверьте, правильно ли связан ваш EJB, и убедитесь, что ключ, который вы используете, правильный
...