Springboot -> Springboot 2:在类路径上检测到 2 个 Spring Web 应用程序初始值设定项



我最近有一个网络应用程序,我最近从springboot升级到springboot 2。当我将其部署到Tomcat 8时,它似乎启动了,但没有完全启动。

在本地主机.2019-09-04.log(雄猫(我有以下错误:

2 Spring WebApplicationInitializers detected on classpath

我已经从这篇文章中尝试了各种东西:

2 在类路径上检测到 Spring Web 应用程序初始值设定项

但没有运气。如何找出另一个 Web 应用程序初始值设定项可能位于哪个包中?

该日志是从处理WebApplicationInitializer的 Servlet 3.0ServletContainerInitializerSpringServletContainerInitializer输出的。

因此,找出这些WebApplicationInitializer的最简单方法是创建我们自己的ServletContainerInitializer,这些也可以处理WebApplicationInitializer并将其信息打印到控制台。

@HandlesTypes(WebApplicationInitializer.class)
public class FooServletContainerInitializer implements ServletContainerInitializer {
@Override
public void onStartup(Set<Class<?>> c, ServletContext ctx) throws ServletException {
for (Class<?> clazz : c) {
System.out.println(clazz);
System.out.println(clazz.getResource('/' + clazz.getName().replace('.', '/') + ".class"));
System.out.println("----------------");
}
}
}

我指的是如何打印类的 JAR 文件路径。

要注册它,请创建一个文件META-INF/services/javax.servlet.ServletContainerInitializer。在这个文件中,包括我们ServletContainerInitializer的完全限定类名:

org.foo.bar.FooServletContainerInitializer

然后它应该在 Tomcat 启动期间执行。

我遇到了这个问题,在以最低限度做了一个新的基本弹簧靴后,我仍然遇到了这个问题。剩下的最后一件事是检查无辜的应用程序属性,并通过反复试验发现存在无效属性。删除此行后,一切正常。

这是属性:

logging.level.org.apache.catalina=DEBUG

相关内容

  • 没有找到相关文章

最新更新