当前位置: 首页 > 知识库问答 >
问题:

Spring Boot-1.5.8应用程序中从1.1.11到1.3.0-alpha4的登录升级

穆旭尧
2023-03-14

Spring boot 1.5.8默认提供logback-1.1.11版本。我正在尝试将logback版本从1.1.11升级到1.3.0-alpha4,并在POM中添加了以下两个属性。

<slf4j.version>1.8.0-beta4</slf4j.version>
<logback.version>1.3.0-alpha4</logback.version>

当我尝试运行应用程序时,得到以下异常。

Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.getLoggerContext(LogbackLoggingSystem.java:273)
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.beforeInitialize(LogbackLoggingSystem.java:98)
    at org.springframework.boot.logging.LoggingApplicationListener.onApplicationStartingEvent(LoggingApplicationListener.java:230)
    at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:209)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:122)
    at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:69)
    at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:48)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:292)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)
    at com.anthem.acmp.service.UMIDALServiceApplication.main(UMIDALServiceApplication.java:25)
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 14 more

我发现logback-classic-1.1.11.jar包含一个org.slf4j.impl包,该包具有StaticLoggerBinder类,而该类在logback-classic-1.3.0-alpha4中不可用,因此导致了此问题。

共有1个答案

向和歌
2023-03-14

与1.2和1.7版本相比,Logback1.3和SLF4J1.8包含了突破性的API变化。在撰写本文时,Spring Boot与新API不兼容。有一个问题是跟踪对新版本的支持。在项目稳定下来,不再处于阿尔法或贝塔状态之前,这个问题不会得到解决。

 类似资料:
  • 您好,我有一个带有嵌入式按键锁的SpringBoot应用程序,使用下面的示例 https://www.baeldung.com/keycloak-embedded-in-spring-boot-app 我正在尝试将Keycloak从12升级到14,并将reeasy升级到3.15.1.Final,infinispan升级到11.0.9.Final。应用程序无法启动,并且除了 NullPointerE

  • 问题内容: 对于典型的最典型的面向Internet的网站,当您通过关闭选项卡( 无需注销 )登录并离开该网站(然后 注销 ),然后再次访问时,可能不需要您重新指定凭据或登录,您可以直接登录。 这一切在后端如何发生?如何在我的JSF 2.1应用程序中启用这种机制? 在Tomcat7服务器上使用JSF 2.1 问题答案: 这基本上是通过一个长寿的cookie完成的。JSF API不提供此功能,因为它只

  • 预先列入登记表工作完善。注册后,它甚至显示我已登录。但当我尝试使用我在注册表中输入的相同凭证登录时。它不允许我登录。我认为问题出在中间件上,因为当我输入错误的用户名/密码时,会显示错误,即无效凭据。但不是有效的,它只是重定向到登录页面没有任何错误。我使用的是laravel 5.0,所有文件都是由laravel提供的

  • 似乎Springboot自动配置自己来使用Tomcat的Logback。我想禁用它,并使用我在类路径中提供的一个。 LoggerFactory不是LoggerContext,但Logback位于类路径上。删除Logback或类[org.slf4j.impl.SimpleLoggerFactory]的竞争实现(类org.slf4j.impl.SimpleLoggerFactory)对象必须是类ch.

  • 问题内容: 我想将日志从Java应用程序发送到ElasticSearch,常规方法似乎是在运行该应用程序的服务器上设置Logstash,并让logstash解析日志文件(使用regex …!)并将其加载到ElasticSearch中。 。 是否有这样做的原因,而不是仅仅设置log4J(或logback)将所需格式的内容直接记录到日志收集器中,然后可以将其异步传送到ElasticSearch?当应用

  • 喂,伙计们! 这是我的第一次,所以我会尽力做到最好。 我想创建一个应用程序,它是运行与Springboot框架,我想把它连接到一个docker容器嵌入MySQL(但Spring启动应用程序不是运行在docker) 所以我一直关注这个帖子 我已经做了我的docker-comact: 我用这个命令运行它: 一切都很好,所以现在我在Spring靴上改变application.properties: 但当