【发布时间】:2013-07-03 16:39:26
【问题描述】:
我正在使用 EJB3.0。我有一个在 websphere app server v7 上运行的应用程序,它正在执行在同一应用程序服务器上的不同应用程序中运行的远程 ejb 3.0。 我使用@EJB 注释在我的代码中注入远程接口。它运行良好,所以我确信所有配置和代码都可以。
当另一个应用程序(包含 ejb)重新启动时(它可能由于代码中的其他地方的修复而被部署)我的应用程序及其客户端不再运行,它似乎失去了 ejb 存根的引用。 我可以简单地重新启动我的应用程序来解决问题,但在我们的生产环境中这不是一个好的做法。
如果需要,我想重新注入或更新 ejb。是否可以? 另一种方法应该是创建 ejb 存根并将它们添加到我的应用程序中(无论如何,这不是一件好事,我会避免它)。 我还尝试通过 InitialContext 切换到旧的“查找”方式,但只在存根上获得 ClassCastException ......再次,它似乎再次需要具体存根......
这个“经典”场景有简单的解决方案吗? 谢谢 疯子
【问题讨论】:
-
在这种情况下,我会向供应商 (IBM) 开一张票...顺便说一句:这真的是远程调用吗(只要您在相同的服务实例)?
-
我还觉得 Websphere 支持“并行部署”以确保客户端/客户端 ejb 的停机时间为零。
-
据我所知,本地调用可以在同一个应用程序中使用,我们有两个不同的客户端和 ejb 应用程序,即使在同一个服务器中。我还被告知这是一个“经典”场景,但无法相信唯一的解决方案是在每次部署 ejb 应用程序时创建存根并将其添加到客户端应用程序或重新启动客户端应用程序。关于并行部署:我不知道这个功能,我会尝试加深websphere infocenter。
标签: java ejb ejb-3.0 websphere-7