2016-11-13 162 views
0

的EJB實現我是新來的JNDI名稱空間,我想通過下面的代碼查找通過JNDI名稱

InitialContext ctx; 
     try { 
      ctx = new InitialContext(); 
      ctx.lookup("?????"); 
     } catch (NamingException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

查找從服務類我EJB類,但我真的沒有任何線索把內部查找。我知道jndi的名字去那裏。但是從哪裏可以得到我的ejb類的jndi名稱。我對這件事情很陌生,實在不能花太多時間學習JNDI。

+0

這要看你怎麼有,如果本地,遠程,無接口視圖設計你的豆腐。因此,正確的答案是查看文檔[Accessing Enterprise Beans](http://docs.oracle.com/javaee/6/tutorial/doc/gipjf.html)並嘗試詳細說明bean的JNDI名稱。或者,更快地查看應用程序服務器的啓動日誌,應該有關於bean的JNDI名稱的條目。 – Leonardo

回答

0

引用服務器日誌文件。當部署EJb bean時。它看起來是這樣的

JNDI綁定名爲SampleImpl在部署單元子部署部署的「採樣網絡1.0.0.war」「xyz.ear」會話bean如下:

查找EJB bean的示例代碼。

final Hashtable jndiProperties = new Hashtable(); 
jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming"); 
final Context context = new InitialContext(jndiProperties); 
SampleIf sif = (SampleEJBIf) context.lookup("java:app/sample-ejb-1.0-SNAPSHOT/SampleImpl"); 

其他方式來定義查找路徑

java:global/pms/pms-web-1.0.0/SampleClass!com.etipl.pms.x12.SampleClass 
java:app/pms-web-1.0.0/SampleClass!com.etipl.pms.x12.SampleClass 
java:module/SampleClass!com.etipl.pms.x12.SampleClass 
java:global/pms/pms-web-1.0.0/SampleClass 
java:app/pms-web-1.0.0/SampleClass 
java:module/SampleClass