我有一个适用于 EJB 的 java 应用程序,但是如果:
- EJB 得到更新,应用程序损坏。
- 应用服务器已更新,应用已损坏。
在没有人工参与的情况下,是否有一种首选方法来更新应用服务器和 bean 的客户端 jar?
如果首选方法取决于应用服务器,则假设为 jboss。
我有一个适用于 EJB 的 java 应用程序,但是如果:
在没有人工参与的情况下,是否有一种首选方法来更新应用服务器和 bean 的客户端 jar?
如果首选方法取决于应用服务器,则假设为 jboss。
这就是人们迁移到 Web 服务的原因之一 :) 或者也使用 JMS。
确实,如果您的应用服务器升级或供应商更改,您的旧/外国存根将无法在服务器端使用新代码。:-(
还记得 EJB 声明应该有一个应用程序部署者角色吗?由他为客户端应用程序准备 client.jar 并分发它(或者可能是应用程序打包器?没关系;关键是:这不是自动操作)。
一些技巧可能是可能的(例如要求将 client.jar 放在服务器上的特定位置以先由客户端下载,然后使用类加载器来使用),但这些技巧比既定做法更多。
至于 JBoss 的细节,我没有任何信息。
你的基本问题是,如果一个组件之间的接口合同发生变化,它会破坏另一个组件。这不是仅限于应用程序和 EJB 的问题,它只是编译器不安全。
我所知道的唯一自动化方法是以使 App 项目依赖于 EJB 项目(在 IDE 和构建文件中)的方式设置您的项目,从而为您提供编译器检查。并将它们一起部署为 EAR。
如果这不是一个选项,并且它们必须单独部署,那么您的 EJB 开发人员需要在他的游戏中保持向后兼容的接口完好无损。