我正在从事SpringBoot与Spring集成项目。升级应用程序时,我遇到以下错误(仅在pivotal cloud上,而不是本地)-
上下文初始化期间遇到异常-取消刷新尝试:org。springframework。豆。工厂未满足的依赖项异常:创建名为“cloudDataBaseConfiguration”的bean时出错:通过字段“cloud”表示未满足的依赖项:创建名为“cloudMultiHttpSecurityConfig”的bean时出错:通过字段“ldapProvider”表示未满足的依赖项:创建在类路径资源中定义的名为“ldapProvider”的bean时出错[com/fidintl/bs/addcash/config/CloudMultiHttpSecurityConfig.class]:通过方法“ldapProvider”参数0表示的未满足的依赖关系:创建在类路径资源[com/fidintl/bs/addcash/config/CloudMultiHttpSecurityConfig.class]中定义的名为“iamClient”的bean时出错:通过方法“iamClient”表示的未满足的依赖关系参数0:创建名为“cloud”的bean时出错:请求的bean当前正在创建中:是否存在无法解析的循环引用?;嵌套的异常是org。springframework。豆。工厂BeanCurrentlyIncremationException:创建名为“cloud”的bean时出错:请求的bean当前正在创建中:是否存在无法解析的循环引用?;嵌套的异常是org。springframework。豆。工厂未满足的依赖项异常:创建在类路径资源[com/fidintl/bs/addcash/config/CloudMultiHttpSecurityConfig.class]中定义的名为“iamClient”的bean时出错:通过方法“iamClient”参数0表示的未满足的依赖项:创建名为“cloud”的bean时出错:请求的bean当前正在创建中:是否存在不可解循环参考?;嵌套的异常是org。springframework。豆。工厂BeanCurrentlyIncremationException:创建名为“cloud”的bean时出错:请求的bean当前正在创建中:是否存在无法解析的循环引用?;嵌套的异常是org。springframework。豆。工厂未满足的依赖项异常:创建在类路径资源[com/fidintl/bs/addcash/config/CloudMultiHttpSecurityConfig.class]中定义的名为“ldapProvider”的bean时出错:通过方法“ldapProvider”参数0表示的未满足的依赖项:创建在类路径资源中定义的名为“iamClient”的bean时出错[com/fidintl/bs/addcash/config/CloudMultiHttpSecurityConfig.class]:通过方法“iamClient”参数0表示的未满足的依赖关系:创建名为“cloud”的bean时出错:请求的bean当前正在创建中:是否存在无法解析的循环引用?;嵌套的异常是org。springframework。豆。工厂BeanCurrentlyIncremationException:创建名为“cloud”的bean时出错:请求的bean当前正在创建中:是否存在无法解析的循环引用?;
我的配置类-
@Configuration
@EnableWebSecurity
@Order(Ordered.HIGHEST_PRECEDENCE)
@Profile("cloud")
public class CloudMultiHttpSecurityConfig extends WebSecurityConfigurerAdapter {
private static final Logger LOGGER = LoggerFactory.getLogger(CloudMultiHttpSecurityConfig.class);
@Autowired
private AuthenticationProvider ldapProvider;
@Autowired
private Environment env;
@Bean
public Cloud cloud() {
return new CloudFactory().getCloud();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(ldapProvider);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().fullyAuthenticated();
http.httpBasic();
http.csrf().disable();
}
@Bean
public AuthenticationProvider ldapProvider(IAMClient iamClient, Cloud cloud) {
IamLdapServiceInfo iamServiceInfo = (IamLdapServiceInfo) cloud.getServiceInfo("ldap-provider-info");
return new AdvLdapAuthProvider(iamServiceInfo, new IAMAuthorityProvider(iamClient));
}
@Bean
public IAMClient iamClient(Cloud cloud) throws Spml2Exception {
WebServiceInfo serviceInfo = (WebServiceInfo) cloud.getServiceInfo("iam-client-info");
IAMClient iamClient = new IAMClient(new Spml2Client(serviceInfo.getUri()), serviceInfo.getAppName(), serviceInfo.getUserName(), serviceInfo.getPassword());
return iamClient;
}
@Bean
public SonUrlService sonataServiceInfo(Cloud cloud) {
LOGGER.info("Inside sonataServiceInfo Bean, type of serviceInfoBean :" + cloud.getServiceInfo("SonUrlService" + env.getProperty("ups_envn")).getClass());
return (SonUrlService) cloud.getServiceInfo("SonUrlService" + env.getProperty("ups_envn"));
}
@Bean
public QueueConnectionFactoryServiceInfo mqServiceInfo(Cloud cloud) {
LOGGER.info("Inside QueueConnectionFactoryServiceInfo Bean, type of mqServiceInfo :" + cloud.getServiceInfo("QueueConnectionFactory_" + env.getProperty("ups_envn")).getClass());
return (QueueConnectionFactoryServiceInfo) cloud.getServiceInfo("QueueConnectionFactory_" + env.getProperty("ups_envn"));
}
@Bean
public QueueNamesServiceInfo queueNamesServiceInfo(Cloud cloud) {
return (QueueNamesServiceInfo) cloud.getServiceInfo("QueueNames_" + env.getProperty("ups_envn"));
}
}
波姆。xml-
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
<relativePath />
</parent>
这个问题并不是只有在我把它推到pivotal cloud时才出现在本地的。
你能试试这样做吗?云依赖关系直接通过Cloud()方法访问。
@Configuration
@EnableWebSecurity
@Order(Ordered.HIGHEST_PRECEDENCE)
@Profile("cloud")
public class CloudMultiHttpSecurityConfig extends WebSecurityConfigurerAdapter {
private static final Logger LOGGER = LoggerFactory.getLogger(CloudMultiHttpSecurityConfig.class);
@Autowired
private AuthenticationProvider ldapProvider;
@Autowired
private Environment env;
@Bean
public Cloud cloud() {
return new CloudFactory().getCloud();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(ldapProvider);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().fullyAuthenticated();
http.httpBasic();
http.csrf().disable();
}
@Bean
public AuthenticationProvider ldapProvider(IAMClient iamClient) {
IamLdapServiceInfo iamServiceInfo = (IamLdapServiceInfo) cloud().getServiceInfo("ldap-provider-info");
return new AdvLdapAuthProvider(iamServiceInfo, new IAMAuthorityProvider(iamClient));
}
@Bean
public IAMClient iamClient() throws Spml2Exception {
WebServiceInfo serviceInfo = (WebServiceInfo) cloud().getServiceInfo("iam-client-info");
IAMClient iamClient = new IAMClient(new Spml2Client(serviceInfo.getUri()), serviceInfo.getAppName(), serviceInfo.getUserName(), serviceInfo.getPassword());
return iamClient;
}
@Bean
public SonUrlService sonataServiceInfo() {
LOGGER.info("Inside sonataServiceInfo Bean, type of serviceInfoBean :" + cloud().getServiceInfo("SonUrlService" + env.getProperty("ups_envn")).getClass());
return (SonUrlService) cloud().getServiceInfo("SonUrlService" + env.getProperty("ups_envn"));
}
@Bean
public QueueConnectionFactoryServiceInfo mqServiceInfo() {
LOGGER.info("Inside QueueConnectionFactoryServiceInfo Bean, type of mqServiceInfo :" + cloud().getServiceInfo("QueueConnectionFactory_" + env.getProperty("ups_envn")).getClass());
return (QueueConnectionFactoryServiceInfo) cloud().getServiceInfo("QueueConnectionFactory_" + env.getProperty("ups_envn"));
}
@Bean
public QueueNamesServiceInfo queueNamesServiceInfo() {
return (QueueNamesServiceInfo) cloud().getServiceInfo("QueueNames_" + env.getProperty("ups_envn"));
}
}
一切都开始了,因为Spring Cloud AWS没有正确配置SimpleStorage原型解决方案。此类负责在使用ResourceLoader时处理s3://协议。有关更多详细信息,请参阅问题:无法在Spring AWS示例上强制转换为org.springframework.core.io.WritableResource。 所以,我不得不手动创建它。但我也在使用LocalStack解决方案(h
我有一个批处理配置。我看到批处理过程默认使用。相反,我需要使用MySQL按批处理发送所有执行细节。但是当我使用以下代码时,我收到以下错误, 创建名称为“batchDataSource”的 Bean 时出错:请求的 Bean 当前正在创建中:是否存在无法解析的循环引用? 在我正在使用属性文件中, 我错过了什么?我正在使用JPA。甚至为什么它不使用可用的JPA数据源?如何在MemoryMap中强制Sp
我已经在我的Spring Boot应用程序中实现了一个调度程序例程,使用Quartz Scheduler遵循本教程(sping-boo-quitz-demo),并为我的目的做了一些修改。 例如,我的作业服务必须能够列出数据库中的所有对象及其子对象,设置新值并最终更新。所有这些都必须是事务性的。 出于某种原因,MyWork类不允许在其中声明事务性方法,所以我通过注入一个带有事务性方法的新服务类来解决
我有以下错误:创建名为'securityConfig'的bean时出错:请求的bean当前正在创建中:是否有不可解析的循环引用? 我该怎么解决呢?
当打开同时使用这两个bean的页面时,我会看到异常: 请告知如何修复此异常。 编辑:我尝试使用setter注入,正如答案中所引用的那样
原因:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“Hibernate Configuration”的bean时出错:通过字段“ReadDataSource01”表示的不满足依赖项;嵌套异常为org.springframework.beans.factory.BeanCreationException:创