tomcat启动时候项目被加载了两次,java类静态变量被加载两次

    昨天部署一个tomcat项目,运行起来后发现一个类的静态变量在不同的请求上来获取的不一样,按原理一个进程下的类以及类的静态变量只会加载一次,不应该出现加载多次的情况,一开始以为是代码问题,研究和分析到昨晚12点也无果;今天又搞了一天终于清楚了,是tomcat的server.xml的配置问题,导致了项目被加载两次,不同的url请求上来进入不同的项目空间。

    原来的server.xml配置:

appBase="webapps" : tomcat会加载一次,此次加载的项目可以通过https://ip/platform-framework/xxxx..的url访问;

<Context>的配置:tomcat会加载一次,此次加载的项目可以通过https:/ip/xxxx形式的url访问;

从运行日志来看的,会看到类和静态变量被加载两次,运行的结果完全不是我们所预期的那样。

修改后的配置文件如下(删除<context>配置):

    删除context节点后,tomcat的加载时间缩短了一半,原来是60秒,修改后是30秒。

    有一个奇怪的地方,原来的配置中在<context>已经设置了:reloadable="false",从字面上理解,tomcat不应该再次加载了,想不明白。

猜你喜欢

转载自blog.csdn.net/u010178611/article/details/86515851