springboot打包发布tomcat遇到的bug及解决方法
Posted ridong12345
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot打包发布tomcat遇到的bug及解决方法相关的知识,希望对你有一定的参考价值。
1、-- 在打包发布springboot时,先在pom.xml中把springboot内嵌的tomcat去掉,这样打包的时候就不会打tomcat的jar包
如下所示:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 排除内置容器,排除内置容器导出成war包可以让外部容器运行spring-boot项目-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
如果还需要内嵌的tomcat,就把tomcat的使用范围scope设置为 privided
如下所示:
<!-- 加载内置tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>privided</scope>
</dependency>
2、-- 把springboot打包成war直接部署到tomcat的webapps下后,遇到问题如下
想直接通过ip地址访问项目,但在tomcat启动中发现项目执行了两次,第一次执行不报错,第二次执行报错
解决方法: 别把项目放在tomcat的webapps下,放到别的目录下,然后配置config文件夹中的server.xml文件
例如我的配置 放在了D:apache-tomcat-8.5.32myproduct目录下 audio-0.0.1-SNAPSHOT 是项目名
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="D:apache-tomcat-8.5.32myproductaudio-0.0.1-SNAPSHOT" debug="0" reloadable="false" crossContext="false">
</Context>
</Host>
这样问题就解决了,再次启动tomcat就只访问一次啦。。
以上是关于springboot打包发布tomcat遇到的bug及解决方法的主要内容,如果未能解决你的问题,请参考以下文章
使用idea对springboot项目打war包及遇到的问题总结
使用idea对springboot项目打war包及遇到的问题总结
SpringBoot 在打包部署的时候打包成 jar 和 war 有什么不同?