gpt4 book ai didi

java - 非法状态异常 : Cannot initialize context because there is already a root application context present

转载 作者:行者123 更新时间:2023-12-02 03:26:27 28 4
gpt4 key购买 nike

在我的应用程序中有 2 个初始化程序:一个扩展 AbstractSecurityWebApplicationInitializer,另一个扩展 AbstractAnnotationConfigDispatcherServletInitializer。当我尝试运行该应用程序时,我收到了 IllegalStateException:无法初始化上下文,因为已经存在根应用程序上下文

如果我理解正确的话,两个初始化器都尝试创建自己的WebApplicationContext。因此,我尝试重写 createRootApplicationContext() 来强制它返回 null。尽管应用程序运行没有异常,但运行不正确。有办法解决这个问题吗?

WebInitializer.java

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { WebConfig.class, AppConfig.class };
}

@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] { RepositoryConfig.class };
}

@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}

SecurityWebApplicationInitializer

import org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer;


public class SecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer {
public SecurityWebApplicationInitializer() {
super(SecurityConfig.class);
}
}

最佳答案

我发现了问题,我不应该将构造函数放入 SecurityWebApplicationInitializer 中。构造函数将创建一个新的 ContextLoaderListener。只要删除它,一切就正常了。

关于java - 非法状态异常 : Cannot initialize context because there is already a root application context present,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38810475/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com