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
より良い方法を提案することもできます。
ありがとうございました!