自己本身开发了一个公共的工具包 sutil.jar,这个工具包提供给多个应用使用。 应用部署在不同的服务器上。
应用服务器是jboss
现在每升级一次工sutil.jar 都需要在所有使用的应用中修改版本,并重启应用。
如何可以不重启应用,热部署sutil.jar ?
[quote]我的意思是重新启动jboss 。[/quote]
重新启动jboss花费的时间太长。
因为jboss会监控部署的应用是否有改动,如果有改动,只需要重新部署一下应用就行了,这个时间是要短的多的。
建议你实践一下,把新应用(war包)拷贝到应用在jboss的部署目录,覆盖原来的war包,观察日志,可以发现这个部署过程时间是非常短的。
JBOSS是会自动检测部署的应用是否有改动,并重新部署。
一个方案是:当sutil.jar有改动时,对和该包相关的所有应用重新打包,并覆盖相应的应用,JBOSS自动检测到并重新部署。 好处是一个脚本就搞定,缺点是如果应用过多,打包时间可能比较慢。
[quote]jboss重新部署时,应用是不是不能持续提供服务的[/quote]
应该是不能的,比如说你的应用里面有个session bean, 重启应用时,容器会销毁这些session bean的实例,此时如果你的服务需要用到这些session bean,就没有办法。但是,这个时间通常很短,而且你可以选择大家不访问的时候(例如晚上)做这个事情。
[quote]那和重启应用应该是一样的了?[/quote]
你这里说的重启应用是什么概念?是指重启jboss,还是说通过控制台重新启动应用?