在Java EE應用程序中,我編寫了一個佈局管理器類。從這個類中,有時我需要從EJB模塊訪問EJB Session。在嘗試從servlet中的獨立POJO類查找本地EJB會話時發現查找失敗錯誤
下面是代碼,這是生成的代碼:
private MessagesFacadeLocal lookupMessagesFacadeLocal() {
try {
Context c = new InitialContext();
return (MessagesFacadeLocal) c.lookup("java:global/CMS/CMS-ejb/MessagesFacade!cms.model.beans.MessagesFacadeLocal");
} catch (NamingException ne) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne);
throw new RuntimeException(ne);
}
}
但是,試圖利用這一點,我得到一個錯誤
了java.lang.RuntimeException:javax.naming.NamingException中:
查找失敗的Java:全球/ CMS/CMS-EJB/MessagesFacade cms.model.beans.MessagesFacadeLocal'
in SerialContext [myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state = com.sun.corba.ee.impl.presentation。 rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs = com.sun.enterprise.naming} [根異常是javax.naming.NameNotFoundException:CMS]
我不知道爲什麼我收到這個問題。如何解決這個問題呢?
CMS實際上是應用程序名稱。CMS-war和CMS-ejb是應用程序中的兩個不同模塊。 – mrN 2012-07-23 15:40:00
「CMS」是查找報告的應用程序名稱(「java:app/AppName」)? – 2012-07-23 22:38:43
不,當我從Web模塊運行時,它返回'CMS-war'作爲appName。 – mrN 2012-07-24 00:31:16