我有一个需要查找 EJB 实例的静态方法。问题在于 JNDI 名称取决于 JEB 接口所在的 JAR 名称。我要做的是找出在运行时赋予该接口的 EJB 实例的名称。
那可能吗?
这是代码:
private static String JNDI_NAME;
private IRevisionContext getRevisionContext() {
try {
if (JNDI_NAME == null) {
//TODO: find the jndi name for IRevisionContext
}
InitialContext ctx = new InitialContext();
IRevisionContext revisionContext = (IRevisionContext) ctx.lookup(JNDI_NAME);
return revisionContext;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
这是容器给出的名称:
EJB RevisionContextLBean 的可移植 JNDI 名称:
- java:global/GRP_UFMS_EAR/auditoria-ejb-1.0-SNAPSHOT/RevisionContextLBean!br.ufms.nti.infra.entidade.audit.IRevisionContext
- java:global/GRP_UFMS_EAR/auditoria-ejb-1.0-SNAPSHOT/RevisionContextLBean
您还可以建议一个更好的方法来做到这一点。
谢谢!