2012-02-21 67 views
2
的NameNotFoundException

我使用EJB3,GlassFish的3.0.1和eclipse赫利俄斯的Ejb3 GlassFish的 - JNDI查找失败SerialContext -

我有一个远程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> 

我有一个空的太阳ejb-jar.xml和我读,它是可选的,因为EJB3 我把我的EJB的EAR随着WEB

我我没有定义ejb-jar.xml中'M试图调用这个EJB的POJO类

InitialContext ic = new InitialContext(); 
ic.lookup("java:global/ear.proj/ejb.proj/TestBean"); 

我得到下面的异常 javax.naming.NamingException中:查找失败的java:全球/ ear.proj/ejb.proj/testBean就' 在SerialContext [根异常是javax.naming.NameNotFoundException:ear.proj]

我想问题是在EJB设置中我的耳朵,因为它在每个便携式全局JNDI名称是在部署期间打印到server.log的,而我无法找到日志

相反,我可以看到以下 信息在任何便携关键字在GlassFish EJB常见问题解答说:在应用程序软件包中找不到模块ejb.proj.ejb.jar

有什么我不见了?

+0

你能解释更多关于Pojo类吗?由于上面的代码使用EJB3,是否有一个特别的原因是您没有使用EJB3注入? @EJB TestBeanRemote TestBeanRemote; – 2012-02-22 21:01:16

回答

0

尝试使用:

ic.lookup("java:global/*classesdirectory*/TestBean"); 

其中classesdirectory =包含在Eclipse项目树类(TestBean.class)的目录。

在NetBeans中,你可以尝试

ic.lookup("java:global/classes/TestBean"); 

因为编译CLASSE(连包装分装AR)

1

确保如果要部署EJB项目,您在server.log中

收到通知
INFO: Portable JNDI names for EJB ${EJB_Name}: 
INFO: Glassfish-specific (Non-portable) JNDI names for EJB ${EJB_Name}: 

在那里你会看到上下文路径。

PS为了看到这些日志,根据配置的不同,您可能需要更改记录器设置,甚至您将强制浏览服务器上的server.log文件。