- 之前自己访问自己的项目都是通过ip端口号项目名进行访问的,也没有对Tomcat的server.xml进行配置。昨天备案的域名下来的,因为自己的小项目,就没用Nginx,想着直接配置下Tomcat的server.xml,端口号改为80(http请求的端口是80,改成80访问时可以不用写端口号),项目名去掉,希望通过域名直接访问项目。
<Context path="" docBase="自定义的默认项目路径" debug="0" reloadable="true" />
但这一配出现问题了,每次启动时都报内存溢出,不配置这一句话,就没有问题。于是我在本地window环境下弄同样的环境还是不行,网上有说改bin目录下catalina.bat的,在这个文件的首行加下面代码:
set JAVA_OPTS= -Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=256M
- 试了一下,确实可以了,但是治标不治本啊。所以我又仔细看了看控制台的启动日志,发现原本启动完的daily.war项目,又启动了ROOT,而且我到webapps下面看daily和ROOT文件夹的内容一样,这里我猜想,配置了
<Context path="" docBase="" debug="0" reloadable="true"
/>
会导致项目启动两次,一次是你的项目,一次是ROOT,进而导致内存溢出。
解决办法:将Tomcat的server.xml的Host节点配置成如下:
<Host name="localhost" appBase=""
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/usr/tomcat/tomcat7/webapps/daily" debug="0" reloadable="false"/>
</Host>
其实就是将appBase里面的webapps干掉,将docBase路径改成你部署完的路径就可以了(daily是项目名),保存之后启动就只启动一次,不会再报内存溢出了。
关于Tomcat部署项目时部署两次问题的解决方案
最新推荐文章于 2022-11-11 22:08:13 发布