我有一个需要配置不同的现有项目。这需要在没有重大代码更改的情况下发生。我实际上希望我只能通过配置以某种方式做到这一点。在过去的 2 到 3 天里,我一直在阅读我能找到的关于这个问题的所有内容。我了解 glassfish 类加载器,以及我可以使用什么。
我有一个当前的示例项目,它有一个 EJB,它定义了一个 @Local 接口。ejb 部署在 ejb-module 内,作为 glassfish 域中的 ejb-module。现在我正在尝试为另一个应用程序找到一种方法,该应用程序作为一个耳朵部署到同一域中,以便能够通过它的本地接口访问该 EJB。
我已阅读文档说这是不可能的。然后我在 StackOverflow 上看到了帖子,网上也有其他人说这是可能的。但是,我找不到实际的解决方案。
通过调查,我意识到@Local EJB 不会将自己注册到 jndi(至少根据日志),如果我使用 glassfish JNDI 浏览器,我也看不到它。所以这对我来说是有道理的,要么是不可能的,要么是 EJB 项目的部署有问题,我需要以某种方式公开它。
@Remote 是一种可能性,如果它可以通过引用进行,并且没有性能开销。但是允许@Local EJB 访问的首选方法确实是最终需要。
有谁知道我需要做什么才能将@Local EJB 暴露给另一个应用程序?或者这显然是不可能的?
我正在使用带有 EJB 3.0 的 Glassfish 2.1
如果 Glassfish 2.1 可以处理 EJB 3.1,如果它提供了这种能力,我愿意转向它,但我怀疑它是否那么容易。
请协助。谢谢你。
我正在添加赏金。要完成赏金,需要在同一个域中运行 2 个 ear 应用程序,其中 A.ear 包含一个 @Local EJB,B.ear 中的应用程序也使用该 EJB。