问题描述:使用本地tomcat运行项目没问题,使用运行hsf的ali-tomcat运行报如下错误,
错误内容如图
关键点是:NoSuchMethodError: org.apache.tomcat.util.res.StringManager.getManager(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager;
原因分析,
初步判断tomcat版本可能有所不同,hsf使用taobao-tomcat-7.0.59,springboot内置tomcat8
网上查找类似错误,有前辈遇到了,并且分析了原因:Springboot内嵌tomcat8,与tomcat7冲突,
解决:
在网上找了一种剔除springboot内置tomcat的方法,pom依赖中,找到tomcat引入源,做如下添加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
然后便能顺利启动,
特别提醒:如果提示没有servlet,引入相应依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>