解决报错 java.lang.NoSuchMethodError: ‘java.lang.String org.apache.logging.log4j.util.PropertiesUtil.getStringProperty’
具体报错信息:
07-Dec-2021 01:30:18.695 信息 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath
07-Dec-2021 01:30:18.785 信息 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log Initializing Spring root WebApplicationContext
07-Dec-2021 01:30:19.467 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.listenerStart 异常将上下文初始化事件发送到类的侦听器实例.[org.springframework.web.context.ContextLoaderListener]
java.lang.NoSuchMethodError: ‘java.lang.String org.apache.logging.log4j.util.PropertiesUtil.getStringProperty(java.lang.String[], java.lang.String, org.apache.logging.log4j.util.Supplier)’
at org.apache.logging.log4j.core.util.BasicAuthorizationProvider.
原因:Maven 导入依赖时导入了两个版本不同但项目名相同的包。
解决:删掉低版本的包。
首先在“项目结构”窗口中找到 WEB-INF/lib 目录,重复的包会被标红,右键移除。
注意,这时还没有结束,还需要在输出目录中删除这个低版本包。
在 \out\artifacts\Bookstore_war_exploded\WEB-INF\lib 目录中找到这个包,然后删除。