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