gpt4 book ai didi

java - Oc4j:从同一 EAR 中的 Web 应用程序调用本地 EJB

转载 作者:行者123 更新时间:2023-12-01 15:35:42 28 4
gpt4 key购买 nike

我的 EAR 应用程序包含两个模块。

EJB 模块和 Web 模块。

在 Web 模块中,我试图获取对某些 EJB SLSB 的引用,我不使用注入(inject) cause the class the I need to invoke the method in is not managed .

我正在使用网络模块中的以下代码:

IFooBarService service = InitialContext.doLookup("IFooBarService");

IFooBarService:定义为的本地接口(interface)(在ejb模块中):

@Local
public interface IFooBarService
{
// ...
}

我错过了什么吗? (我应该提供环境信息吗?)

最佳答案

您确定IFooBarService是IFooBarService服务绑定(bind)到的JNDI名称吗?例如,JBoss 在启动日志中显示 JNDI 名称。然后您可以将其用于查找目的。

一般来说,如果您希望应用程序可移植,则不应依赖服务器机制来生成 JNDI 名称,因为 Java EE 规范有自己的名称。您应该能够执行以下操作:

IFooBarService service = InitialContext.doLookup("java:comp/env/IFooBarService");

如果您使用的是较新版本的 Java EE (Java EE 6),并且想要查找位于同一应用程序但不同模块中的 EJB,您可以执行以下操作:

IFooBarService service = InitialContext.doLookup("java:app/[module name]/IFooBarService");

有关标准名称的更多信息 here .

关于java - Oc4j:从同一 EAR 中的 Web 应用程序调用本地 EJB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8885777/

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