需要从 servlet 上下文侦听器的contextInitialized()
方法调用 EJB 服务。应用程序在 JBOSS 上运行,尽管上下文侦听器工作正常,但我无法通过 JNDI 查找访问 EJB bean。
因为 JBOSS 中的 Web 部署发生在 EJB bean 与 JNDI 树绑定之前。如何克服这一点?有没有办法在 EJB 完全部署后尽早配置 JNDI 绑定或稍后开始 Web 部署?
我已经Thread.sleep()
在contextInitialized()
方法中调用服务之前,它在我的 JBoss5.1.0 GA 中运行良好,在相同版本的其他机器 JBoss 中同样没有运行。
应用程序需要这个,因为我们希望从数据库中加载一些主数据并使其在 Web 层中可用(一种缓存)。JBOSS startupmbean 是否适合这个要求?如果是,我怎样才能使数据可用于 web 层?
另外,如果有任何替代方法可用,请提出建议。