Springboot项目编译正常启动Unable to start embedded Tomcat报错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Springboot项目编译正常启动Unable to start embedded Tomcat报错相关的知识,希望对你有一定的参考价值。
参考技术A 在精简项目POM依赖配置时,导致项目出现如下错误仔细查看错误日志:Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;
根据经验当看到异常信息里有NoSuchMethodError时,你应该很高兴,因为这种错误一般是因为jar包冲突引起的。根据相关资料得到javax.servlet.ServletContext类文件在servlet-api包中,通过依赖关系查看servlet-api包的版本
可以看到引用的joint中引用了jcifs包中依赖了servlet-api的包,排除依赖
此时通过依赖关系查看
此时可以发现servlet-api的依赖已经不存在了,再次启动项目,发现项目正常启动,问题得到解决。
低版本2.4的servlet-api.jar中没有getVirtualServerName()方法,引入高版本的servlet-api.jar 包(javax.servlet-api-3.1.0.jar) 即有这个方法。
springboot内嵌tomat时的tomcat-embed-core会和servlet-api.jar的ServletContext类冲突,正常的springboot项目中是不需要依赖servlet-api.jar的,如果依赖了则需要排除否则会导致内嵌容器无法正常启动
当使用 spring-data-hadoop-hbase 时也需要排除servlet-api.jar的依赖,否则也会导致无法正常启动
goland部分go代码显示unable to resolve并报红问题
今天尝试了一下goland中安装go并启动项目,发现了一个奇怪的问题,例如如下代码:
_, _ := strconv.Atoi(XXX)
一直报红,显示Atoi一直找不到。(unable to resolve).
但是编译项目和debug项目都是正常的。
经过查找网上的资料,无论是勾选什么选项或者是选择清空gland的缓存并重启,此错误还是存在。
后来经过尝试,发现如下方式可以解决问题:
手动在go官网下载go并安装,然后在Goland-Settings-Go-GOROOT中,选择go为自己手动安装的go目录,然后重新尝试下,发现错误消失。
在这里做个记录,以备自己日后查阅。(强迫症)
如果有其他更好的方式,请留言告知我,不吝赐教,谢谢。
以上是关于Springboot项目编译正常启动Unable to start embedded Tomcat报错的主要内容,如果未能解决你的问题,请参考以下文章
一个Tomcat下部署多个项目异常:org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register
项目启动报Unable to acquire AES algorithm.
springBoot项目替换lib下的依赖jar包 Unable to open nested entry 'BO
解决springboot启动失败问题:Unable to start embedded container;
Springboot源码编译报错Unable to start the daemon process
安装xcode6 beta 后调试出现Unable to boot the iOS Simulator以及编译苹果官方Swift的demo报错failed with exit code 1的解决的方法