我有一个需要查找 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
 
您还可以建议一个更好的方法来做到这一点。
谢谢!