我使用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
有什么我不见了?
你能解释更多关于Pojo类吗?由于上面的代码使用EJB3,是否有一个特别的原因是您没有使用EJB3注入? @EJB TestBeanRemote TestBeanRemote; – 2012-02-22 21:01:16