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