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应用部署到外部Tomcat

SpringBoot 在打包部署的时候打包成 jar 和 war 有什么不同?

SpringBoot 在打包部署的时候打包成 jar 和 war 有什么不同?

SpringBoot 部署打包成 jar 和 war 有什么不同?