我使用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