IDEA导出springboot war包进tomcat服务器出现的问题
按照网上的参考资料导出war包在放进服务器总是出现问题。
1.pom文件
因为springboot自带内置一个tomcat,但是我们放进服务器后不需要使用它自带的服务器,所以我们第一步是把他屏蔽掉。
<-----------pom文件-------------><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!-- 移除嵌入式tomcat插件,方便项目打包放进服务器--><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency><!--只在测试和编译时使用,在平时调试时使用--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency>
2.在启动类同级目录下加一个自定义类,重要
/*** springboot项目一般都有一个启动类来启动项目,而部署到tomcat不能通过该方式启动,所以需要改变启动方式* Created by Chenge on .1.07 8:57*/public class ServletInitializer extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {// 注意这里要指向用main方法执行的Application启动类return builder.sources(UsedwebApplication.class);}}
/-----------------------------------------分割线-------------------------------------------------
错误的步骤是现在就开始打war包放进服务器,我之前就是这样,看一下我的错吧
查看tomcat的日志文件
错误提示没有找到驱动类,但我解压出war包后发现驱动包是在的。不见的是我们静态资源包,做一下比较
开始排错
查看resources 是不是resource类型文件夹
我这里是正确的,不是的话右键 make directory as resource
查看pom文件是否将resource包含进去
重要,重要,重要没写这一步的话是无法将静态资源打进war包的
3.开始打包
打好的war包
将war包放进tomcat的webapps下面
此时可以根据ip:端口/war包名称进行访问了。
因为一般tomcat只需要部署一个项目,所以我们可以进行相关设置将war包名称去掉。
编辑 tomcat/conf/server.xml
找到Host标签,加上以下一段代码
<Context path="" docBase="war包名称(不要.war)" debug="0"></Context>
这样设置后服务器启动时会进行以下操作
1.解压war包
2.创建ROOT目录(一般默认有个tomcat的主页项目,会覆盖掉)
3.将解压的war包内容复制进ROOT
4.启动服务器
-----linux注册tomcat服务不在此处说明service tomcat start
成功进入主页
如果你的问题得到解决,记得给我点赞关注加评论哦!!!