Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否有一个perferred方法来更新使用EJB的应用程序?_Java_Deployment_Ejb_Maintenance_Release Management - Fatal编程技术网

Java 是否有一个perferred方法来更新使用EJB的应用程序?

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声明应该有一个应用程序部署者角色吗?这取决于他为客户端应用程序

我有一个与EJB一起工作的java应用程序,但是如果:

  • EJB被更新,应用程序被破坏
  • 应用程序服务器已更新,应用程序已损坏
  • 在没有人为参与的情况下,是否有更好的方法来更新appserver和bean的客户端jar


    如果有首选方法依赖于应用服务器,那么假设jboss。

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

    实际上,如果您的应用程序服务器升级或供应商更改,您的旧/外来存根将无法与服务器端的新代码一起工作-(

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

    有些技巧可能是可能的(比如要求将client.jar放在服务器上的特定位置,由客户机先下载,然后使用类加载器),但这些技巧比既定的做法更为常见


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

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

    据我所知,唯一的自动化方法是以这样的方式设置项目,使应用程序项目依赖于EJB项目(在IDE和构建文件中),让您进行编译器检查,并将它们作为EAR一起部署


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

    对于接口,我们有两个。一个使用序列化对象,另一个仅使用java对象。