影响:
每次tomcat启动,Java代码会被加载两次, 如果有定时器类的东西业务,那么定时器也会有两份在跑,会影响业务。
分析:
根据server.xml里配置的,Tomcat首先根据的配置内容生成第一个StandardContext对象,加载一次项目。然后再根据Host/appBase的配置对webapps下面的项目生成第二个StandardContext,再加载一次项目。Tomcat针对同一项目生成两个StandardContext的原因就是因为他们的名字不同,Tomcat认为是两个Context,所以加载了两次。
解决方法:
不要把项目放入webapps目录下(可以在Tomcat根目录建一个文件夹,把项目发布进去),设置server.xml, appBase="" 为空,然后配置标签
<Context docBase="D:/**/指定发布的项目" path="" reloadable="true"/>