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