java热部署:tomcat运行中,动态修改配置文件(java文件)中的static属性并生效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java热部署:tomcat运行中,动态修改配置文件(java文件)中的static属性并生效相关的知识,希望对你有一定的参考价值。

tomcat在运行期间,动态修改配置文件(java文件或class文件)中的static属性,修改后的属性在tomcat不需要重启的情况下立即生效。求java大神提供解决方案!

<Context path="/tomcatTest" reloadable="true" docBase="E:\workplace\testProject\WebRoot"/>
第一个是容器里的项目path 要加/
第二个参数是你的workplace的路径,一般是到webroot

写个context.xml文件,放到项目的META-INF里.context.xml头部像上面那样写就可以
参考技术A apollo 配置中心

IntelliJ IDEA12 怎么热部署,每次修改java文件就得重启tomcat

    确保使用的是debug模式。

    确保tomcat是由idea实例化的。也就是说tomcat是在idea中配置好的

    (特殊的修改如:项目配置文件,某些特殊类新增,方法名称参数的添加修改引起的不能热部署就必须重启,当然你也可以用Jrebel插件。此插件收费。可以实现大部分的修改热部署,包括修改项目配置文件等热部署。以下描述均指的是普通的修改下的热部署。)

    项目配置如图:



    当修改文件后,ctrl+F9,编译文件。tomcat会自动加载新文件。

    On frame deactivation选项同样可以选择为 update classes and Resource选项。它的作用就是在你失去焦点的时候自动编译。例如:修改某文件后你直接切换到了浏览器,或者点了下别的。只要当前的intellij idea 不是焦点就会激活自动编译并更新文件动作。也就是说不用手动按ctrl+F9了。

    所有以上操作,请确保是在DEBUG模式下操作。也就是运行tomcat的时候是debug模式启动的。

参考技术A   intellij idea默认文件是自动保存的,但是手头有个项目jsp文件改动后,在tomcat中不能立即响应变化。要jsp文件改动后立刻看到变化,有个配置。
  在idea tomcat 中server的配置里,有个on frame deactivation,选择update classes and resources。另外有个配置on update action,就是手动操作的时候采取什么动作,可以重启服务器,也可以像上面一样更新类和资源文件,我选的是Redeploy。 可是当前项目没有update classes and resources这个选项,有个Hot Swap classes。
  这是由于服务器添加的Artifact类型问题,一般一个module对应两种类型的Artifact,一种是war,一种是war explored。
  war就是已war包形式发布,当前项目是这种形式,在这种形式下on frame deactivation配置没有update classes and resources选项。war explored是发布文件目录,选择这种形式,on frame deactivation中就出现update classes and resources选项了。本回答被提问者和网友采纳

以上是关于java热部署:tomcat运行中,动态修改配置文件(java文件)中的static属性并生效的主要内容,如果未能解决你的问题,请参考以下文章

IntelliJ IDEA12 怎么热部署,每次修改java文件就得重启tomcat

IntelliJ IDEA12 怎么热部署,每次修改java文件就得重启tomcat

SpringBoot中动态加载(热部署)

Tomcat热部署的三种方式

Tomcat热部署的三种方式

健康检查-热部署-lombox相关问题问题