Я использую EJB3, GlassFish 3.0.1 и затмить Гелиосejb3 GlassFish - JNDI Lookup потерпел неудачу в SerialContext - NameNotFoundException
У меня есть удаленный EJB
@Stateless (mappedName="TestBean")
public class TestBean implements TestBeanRemote {
public int add(int a, int b){
return a+b;
}
}
И удаленный интерфейс
@Remote
public interface TestBeanRemote {
public int add(int a, int b);
}
application.xml
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:application="http://java.sun.com/xml/ns/javaee/application_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" id="Application_ID" version="6">
<application-name>ear.proj</application-name>
<display-name>ear.proj</display-name>
<module>
<web>
<web-uri>war.proj</web-uri>
<context-root>/war</context-root>
</web>
</module>
<module>
<ejb>ejb.proj.jar</ejb>
</module>
</application>
У меня есть пустой солнечный jar.xml на EJB и я не определил EJB-jar.xml, как я прочитал, что это необязательно, так как EJB3 я помещаю мой EJB в EAR вместе с WEB
I пытаюсь вызвать этот EJB в классе POJO
InitialContext ic = new InitialContext();
ic.lookup("java:global/ear.proj/ejb.proj/TestBean");
Я получаю следующее исключение javax.naming.NamingException: Lookup Сбой Java: глобальный/ear.proj/ejb.proj/TestBean 'в SerialContext [ Исключение корня javax.naming.NameNotFoundException: ear.proj]
Я думаю, что проблема в настройке EJB в мой EAR, как сказано в FAQ GlassFish EJB, о том, что каждое переносимое глобальное имя JNDI выводится на server.log во время развертывания, пока я не могу найти какое-либо переносимое ключевое слово в журнале
Вместо этого я могу видеть следующее INFO: Не удается найти модуль ejb.proj.ejb.jar в комплекте приложений
Есть ли что-то, что мне не хватает?
Не могли бы вы подробнее рассказать о своем классе Pojo? Поскольку ваш код выше использует EJB3, есть ли конкретная причина, по которой вы не используете EJB3-инъекцию? @ EJB TestBeanRemote TestBeanRemote; –