gpt4 book ai didi

java - 未找到 Spring Bean

转载 作者:行者123 更新时间:2023-12-01 23:30:36 24 4
gpt4 key购买 nike

我有这个项目层次结构:

带有一个 Bean (SoapServiceBean) 的 SpringConfiguration.java 文件。具有两个 bean(ConfigManager 和 LoggerManager)的 LoggerUtilsConfiguration.java。

SpringConfiguration 使用 @Import 导入 LoggerUtilsConfigueration。

代码:

@Configuration
@Import({com.myApp.LoggerUtilsConfiguration.class})
public class SpringConfiguration {

@Lazy
@Bean(name = "soapServiceBean")
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
public SoapServiceBean soapServiceBeanInit(
@Qualifier("configManager") ConfigManager configManager ,
@Qualifier("loggerManager") LoggerManager loggerManager)
throws ServiceException, SystemException {

SoapServiceBean service = new SoapServiceBean();
service.setConfigManager(configManager);
service.setLoggerManager(loggerManager);

return service;
}

}

@Configuration
public class LoggerUtilsConfiguration {

@Bean(name = "configManager")
@Scope(BeanDefinition.SINGLETON)
public ConfigManager configManagerInit() {

ConfigManager cManager = new ConfigManager();

return cManager;
}

@Bean(name = "loggerManager")
@Scope(BeanDefinition.SINGLETON)
public LoggerManager loggerManagerInit() {

LoggerManager cManager = new LoggerManager();

return cManager;
}

}

我的问题是,“configManager”是一个有效的 bean,但 loggerManager 抛出此异常:

No qualifying bean of type [com.myApp.LoggerManager] found for dependency: 
expected at least 1 bean which qualifies as autowire candidate for this dependency.
Dependency annotations: {@org.springframework.beans.factory.annotation.Qualifier(value=loggerManager)}

很奇怪,因为如果我将 loggerManager Bean 方法复制到主 @Configuration 类中,应用程序启动没有问题,loggerManager 启动也没有问题。

“LoggerUtilsConfiguration”不是我的应用程序的一部分,是来自另一个开发团队的 Maven 依赖外部 jar。我已经反编译了它,我看不到任何奇怪的东西,“configManager”和“loggerManager”具有相同的注释和相同的值,除了bean名称之外。

有什么想法吗?

最佳答案

已解决。

我的问题是 WebSphere,它存储旧版本的第三方 JAR。

\was\wasprofiles\wp_profile80\installedApps\GUUPZN00Cell\MY-APP.ear\lib\LOGGER-LIB-1.0.0.jar
\was\wasprofiles\wp_profile80\installedApps\GUUPZN00Cell\MY-APP.ear\lib\LOGGER-LIB-1.0.1.jar

版本“1.0.0”LOGGER-LIB 不包含 bean“loggerManager”,WebSphere 正在加载该版本的库。当 websphere 尝试删除该文件时,该文件似乎被阻止了。我必须停止服务器才能正确删除它。

关于java - 未找到 Spring Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58291735/

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