繁体   English   中英

@SpringBootTest 注解导致 StackOverflowError

[英]@SpringBootTest annotation resulting in StackOverflowError

我想在我的应用程序中测试一些服务,但是当我使用@SpringBootTest注释时,它们会导致 StackOverflowError。 首先,我使用 JUnit5 并尝试创建一些基本测试,例如:

@Test
void onePlusOneShouldBeTwo() {
int one = 1;
assertEquals(2, one + one);
}

这个很好用。

但是对于更复杂的测试,我需要使用@SpringBootTest并且无论测试是什么样子,错误仍然是:

java.lang.StackOverflowError
    at java.base/java.lang.StackTraceElement.of(StackTraceElement.java:541)
    at java.base/java.lang.Throwable.getOurStackTrace(Throwable.java:838)
    at java.base/java.lang.Throwable.getStackTrace(Throwable.java:830)
    at ch.qos.logback.classic.spi.ThrowableProxy.<init>(ThrowableProxy.java:79)
    at ch.qos.logback.classic.spi.ThrowableProxy.<init>(ThrowableProxy.java:89)
    at ch.qos.logback.classic.spi.ThrowableProxy.<init>(ThrowableProxy.java:89)
    at ch.qos.logback.classic.spi.ThrowableProxy.<init>(ThrowableProxy.java:89)
    at ch.qos.logback.classic.spi.ThrowableProxy.<init>(ThrowableProxy.java:89)
    at ch.qos.logback.classic.spi.ThrowableProxy.<init>(ThrowableProxy.java:89)
    at ch.qos.logback.classic.spi.ThrowableProxy.<init>(ThrowableProxy.java:89)
    at ch.qos.logback.classic.spi.ThrowableProxy.<init>(ThrowableProxy.java:89)
    at ch.qos.logback.classic.spi.ThrowableProxy.<init>(ThrowableProxy.java:89)
    at ch.qos.logback.classic.spi.ThrowableProxy.<init>(ThrowableProxy.java:89)
    at ch.qos.logback.classic.spi.ThrowableProxy.<init>(ThrowableProxy.java:89)
    at ch.qos.logback.classic.spi.ThrowableProxy.<init>(ThrowableProxy.java:89)
    at ch.qos.logback.classic.spi.ThrowableProxy.<init>(ThrowableProxy.java:89)
    at ch.qos.logback.classic.spi.ThrowableProxy.<init>(ThrowableProxy.java:89)
    at ch.qos.logback.classic.spi.ThrowableProxy.<init>(ThrowableProxy.java:89)
    at ch.qos.logback.classic.spi.ThrowableProxy.<init>(ThrowableProxy.java:89)
    at ch.qos.logback.classic.spi.ThrowableProxy.<init>(ThrowableProxy.java:89)

...等等。

contextLoads() 也是这样失败的。

我尝试添加几个日志记录依赖项,从我的代码中删除 Lombok,查找此错误但没有成功。 唯一与此问题相关的是: https://jira.qos.ch/browse/LOGBACK-1454但我在那里找不到解决方案。 这是我的第一个问题,所以请不要太难。 我只想测试我的应用程序,但我想不出如何解决这个问题……谢谢,祝你有愉快的一天。

编辑: https://github.com/matyzatka/BankAppBackend是项目,如果你需要看代码:)

为了修复它,我们只是删除了这些行(从安全配置中):

// DELETE THIS:
@Bean
public AuthenticationManager authenticationManagerBean() throws Exception {
    return configuration.getAuthenticationManager();
}

加上(删除)“孤立代码”、进口等……:

//"orphaned":
private final AuthenticationConfiguration configuration;

public SecurityConfiguration(AuthenticationConfiguration configuration) {
    this.configuration = configuration;
}

我们很幸运,在我们的上下文中确实没有任何东西需要“暴露的 AuthenticationManager bean”......否则我们会按照以下建议采取行动:

https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter (InMemory, Global, Local...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM