我计划将一个EAR打包应用程序部署到JBoss v4.2中,作为一个包含 EAR 内容的文件夹。到目前为止,EAR 被部署为单个文件。我希望能够在不需要重新启动应用程序的情况下替换单个JAR 。
是否有任何类型的事件侦听器或注释可用于在部署时注册这些 JAR 文件?这个想法是一个插件,例如部署一些实现已知接口的功能。插件应在 Seam webapp 环境中使用,并且可以即时与更新版本进行交换。
有任何想法吗?谢谢。
我计划将一个EAR打包应用程序部署到JBoss v4.2中,作为一个包含 EAR 内容的文件夹。到目前为止,EAR 被部署为单个文件。我希望能够在不需要重新启动应用程序的情况下替换单个JAR 。
是否有任何类型的事件侦听器或注释可用于在部署时注册这些 JAR 文件?这个想法是一个插件,例如部署一些实现已知接口的功能。插件应在 Seam webapp 环境中使用,并且可以即时与更新版本进行交换。
有任何想法吗?谢谢。
AFAIK,这是不可能的/不支持的。在使用爆炸的 EAR 时,触摸单个模块会触发整个 EAR 的热部署。
来自轻量级 Java Web 应用程序开发:利用 EJB3、JSF、POJO 和 Seam:
3.4.2. 热部署
另一个有助于敏捷开发的 JBoss 特性是展开归档。EAR、EJB3 JAR 和 WAR 文件不一定是 JBoss 容器中的 JAR 文件。它们可以是包含 JAR 文件内容的目录。例如,您可以将其部署为目录,而不是将 dvdcatalog.ear 文件部署为单个文件。
通过展开的目录,您可以在服务器运行时更改应用程序中的任何单个 JSP 页面或 Java 类文件。然后您可以触摸展开目录中的 META-INF/application.xml 文件(即,将文件的时间戳更新为当前)以重新部署整个 EAR 应用程序。这进一步为快速周转的敏捷开发人员节省了大量时间。
你要找的东西听起来并不简单。它需要检测更改,卸载来自该 JAR 的已加载类定义(假设此信息已知),重新加载类(类似但我很确定我过于简单化了)。也许更多的是 OSGI 服务器的工作。