gpt4 book ai didi

java - Glassfish 上 EAR 文件中 EJB3 的 JNDI 查找

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:52:02 24 4
gpt4 key购买 nike

我有一个包含一堆 JAR 的 EAR 文件,其中一个 JAR 包含本地 session Bean (EJB3)。我需要从一个非托管 POJO 中执行这些 session Bean 的 JNDI 查找,该 POJO 也包含在 EAR 中(在本例中也包含在与 EJB 相同的 JAR 中)。我尝试关注 Glassfish EJB FAQ ,但无论我尝试什么,我都会继续收到 javax.naming.NameNotFoundException。

我不确定一些事情。我应该把我的 ejb-jar.xml 放在哪里(我试过 EARs META-INF 以及 JARs META-INF)?我需要 sun-ejb-jar.xml 吗? ejb-link到底是什么,有什么作用?我可能做错了什么(我的配置与本地查找常见问题解答中给出的配置几乎相同)?

我列出了一些我尝试过的配置以及下面的结果:

<enterprise-beans>
<session>
<ejb-name>ITestBean</ejb-name>
<ejb-class>com.test.TestBean</ejb-class>
<ejb-local-ref>
<ejb-ref-name>ITestBean</ejb-ref-name>
<local>com.test.ITestBean</local>
</ejb-local-ref>
</session>
</enterprise-beans>

应用程序已部署,但 JNDI 查找返回 null。

<enterprise-beans>
<session>
<ejb-name>ITestBean</ejb-name>
<ejb-class>com.test.TestBean</ejb-class>
<ejb-local-ref>
<ejb-ref-name>ITestBean</ejb-ref-name>
<local>com.test.ITestBean</local>
<ejb-link>ITestBean</ejb-link>
</ejb-local-ref>
</session>
</enterprise-beans>

应用程序未部署:无法确定 EJB 3.0 ref Unresolved Ejb-Ref ITestBean@jndi 的本地业务与远程业务指定。

<enterprise-beans>
<session>
<ejb-name>ITestBean</ejb-name>
<ejb-class>com.test.TestBean</ejb-class>
<ejb-local-ref>
<ejb-ref-name>ITestBean</ejb-ref-name>
<local>com.test.ITestBean</local>
<ejb-link>MyJar.jar#ITestBean</ejb-link>
</ejb-local-ref>
</session>
</enterprise-beans>

应用程序未部署:错误:未解决:MyJar.jar#ITestBean。

<enterprise-beans>
<session>
<ejb-name>ITestBean</ejb-name>
<local>com.test.ITestBean</local>
<ejb-local-ref>
<ejb-ref-name>ITestBean</ejb-ref-name>
</ejb-local-ref>
</session>
</enterprise-beans>

处理 EjbDescriptor 时出错

最佳答案

您始终也可以将 InitialContext 中的所有名称转储到 System.out 或日志中。

//Get all the names in the initial context
NamingEnumeration children = initialContext.list("");

while(children.hasMore()) {
NameClassPair ncPair = (NameClassPair)children.next();
System.out.print(ncPair.getName() + " (type ");
System.out.println(ncPair.getClassName() + ")");
}
}

关于java - Glassfish 上 EAR 文件中 EJB3 的 JNDI 查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1523984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com