在我为项目设定 parent pom的时候遇上了一个问题,
APPLICATION FAILED TO START
***************************
Description:
An attempt was made to call a method that does not exist. The attempt was made from the following location:
org.apache.catalina.authenticator.AuthenticatorBase.startInternal(AuthenticatorBase.java:1178)
The following method did not exist:
javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;
The method's class, javax.servlet.ServletContext, is available from the following locations:
jar:file:/Users/12dong/.m2/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar!/javax/servlet/ServletContext.class
jar:file:/Users/12dong/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/9.0.17/tomcat-embed-core-9.0.17.jar!/javax/servlet/ServletContext.class
It was loaded from the following location:
file:/Users/12dong/.m2/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar
Action:
Correct the classpath of your application so that it contains a single, compatible version of javax.servlet.ServletContext
从description可以看出我的项目关于servlet-api的引用又有两处用到了,只要把我显式引用的pom dependency删除就好了。
但不知道为什么如果仅仅把parent pom 改为idea 默认的springboot-pom可以使用,但是换成我自己创建的parent pom就不能使用了,即使我自己创建的parent pom 的 parent pom 也是idea 默认的springboot-pom。