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.32\myproduct目录下 audio-0.0.1-SNAPSHOT 是项目名
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="D:\apache-tomcat-8.5.32\myproduct\audio-0.0.1-SNAPSHOT" debug="0" reloadable="false" crossContext="false">
</Context>
</Host>
这样问题就解决了,再次启动tomcat就只访问一次啦。。
原文地址:https://www.cnblogs.com/ridong12345/p/9318867.html