2016-11-13 79 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