我打算将 EAR 打包的应用程序部署到 JBoss v4.2 作为包含EAR内容的文件夹 . 到目前为止,EAR被部署为单个文件 . 我希望能够替换单个 JARs ,而无需重新启动应用程序 .
是否有任何类型的事件 listener 或 annotation 可用于在部署时注册这些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服务器的工作 .
JBossClassLoadingUseCases
ClassLoadingConfiguration
1 回答
AFAIK,这是不可能/不支持的 . 使用爆炸的EAR时,触摸单个模块将触发整个EAR的热部署 .
从轻量级Java Web应用程序开发:利用EJB3,JSF,POJO和Seam:
你要找的东西听起来并不简单 . 它需要检测更改,卸载来自该JAR的加载类定义(假设此信息已知),重新加载类(类似的东西,但我很确定我过于简单化) . 也许更多的OSGI服务器的工作 .
另见
JBossClassLoadingUseCases
ClassLoadingConfiguration