SpringBoot问题(Tomcat启动失败)

解决方案 1:

如果用的自己的Tomcat 部署项目 则要:

org.springframework.boot
spring-boot-starter-tomcat
provided //这就是让内嵌的tomcat失效

所以 启动会报tomcat 异常

而开发阶段我们用的是内嵌的 所以要 :

org.springframework.boot
spring-boot-starter-tomcat

解决方案 2:

其次 : 这是我这次出错的原因:
对springboot的依赖必须放在最前面!否则Springboot的内嵌tomcat无法启动!

必须放在 最前面 才可以 否则还会有一些什么jar冲突 之类的奇怪的异常

附带 SpringBoot war包运行的 方式 :
1.首先 让内嵌的 tomcat 失效
2.继承SpringBootServletInitializer

public class MyApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(MyApplication.class);
}

public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}

ServletInitializer是Servlet初始化器,意思是当本应用作为tomcat的一个webapp时,就调用configure函数,这是tomcat容器调用的,这时整个应用就相当于Servlet。
当作为SpringApplication运行时,会执行main函数,但是不会执行上面的configure函数

建议 : 无论 jar 还是 war 都可以采用这种方式 !


猜你喜欢

转载自www.cnblogs.com/zhyp/p/12984736.html