我有一个适用于EJB的Java应用程序,但是如果:

  1. EJB得到更新,应用程序被破坏。
  2. 应用服务器已更新,应用已损坏。
  3. 如果没有人工参与,是否有更新应用服务器和bean的客户端jar的首选方法?

    如果首选方法取决于app服务器,则假设为jboss。

有帮助吗?

解决方案

这是人们迁移到Web服务的原因之一:)或者也使用JMS。

实际上,如果您的应用服务器已升级或供应商已更改,则您的旧/外部存根将无法使用服务器端的新代码。 : - (

还记得EJB声明应该有一个应用程序部署者角色吗?他应该为客户端应用程序准备client.jar并分发它(或者可能是应用程序打包器?无关紧要;关键是:它不是自动操作)。

有些技巧可能是可能的(比如要求将client.jar放在服务器上的特定位置,先由客户端下载,然后使用类加载器),但这些操作比现有做法更糟糕。

至于JBoss的细节,我没有任何信息。

其他提示

你的基本问题是,如果一个组件之间的接口契约发生变化,它会破坏另一个组件。这不是局限于应用程序和EJB的问题,它只是编译器安全。

我所知道的唯一自动化方法是设置项目,使App项目依赖于EJB项目(在IDE和构建文件中),为您提供编译器检查。并将它们作为EAR部署在一起。

如果这不是一个选项,并且它们必须单独部署,那么您的EJB开发人员需要在他的游戏中保持向后兼容的接口保持不变。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top