【发布时间】:2016-02-10 15:43:50
【问题描述】:
您好,有一个 Web 项目和一个 EJB 项目在同一个 TomEE 服务器上运行。
我已经在 TomEE 服务器的应用程序文件夹中部署了 EJB 项目,并且可以看到 EJB 在服务器启动时正在启动。
INFO: Jndi(name=DefaultRegistrationProcess) --> Ejb(deployment-id=DefaultRegistrationProcess)
以下是 EJB 项目中的 @Stateless bean 之一
@Stateless(name = "DefaultRegistrationProcess")
public class DefaultRegistrationProcess implements RegistrationProcess {
@Override
public void process(Registration registration) {
System.out.println("Hello from Default registration process!");
}
}
我想从 Web 项目中对 DefaultRegistrationProcess bean 进行 JNDI 查找。
通过 maven 将 EJB 与 Web 项目打包我可以使用以下代码进行 JNDI 查找。
new InitialContext().lookup("java:module/DefaultRegistrationProcess");
当 EJB 单独部署时尝试执行相同的调用时,我得到 p>
Exception occured: Name "module/DefaultRegistrationProcess" not found.
我浏览了http://tomee.apache.org/documentation.html 网站并尝试了一些示例,但仍然出现错误。
当 EJB 部署在同一个 TomEE 服务器上时,如何从 Web 项目中对 EJB 进行本地 JNDI 查找?
【问题讨论】:
-
您能否提供一些有关您正在使用的服务器版本以及您遵循哪个 Java EE 规范的信息?
-
我正在使用 Apache-tomee-1.7.1-plus。以下是我试过的,tomee.apache.org/basics---getting-things.htmltomee.apache.org/lookup-of-other-ejbs-example.html
-
能否提供您的 JNDI 树?
-
您好 Aribeiro,不确定您所说的 JNDI 树是什么意思。
-
您已经解决了,但是 JNDI 树是所有可用于发现和/或查找的服务的分层目录结构。通常,您可以通过应用服务器的管理控制台访问它。
标签: ejb jndi apache-tomee