diff --git a/utils/src/main/java/com/cloud/utils/component/ComponentContext.java b/utils/src/main/java/com/cloud/utils/component/ComponentContext.java index 8948b2789ee..8486dbf4bd4 100644 --- a/utils/src/main/java/com/cloud/utils/component/ComponentContext.java +++ b/utils/src/main/java/com/cloud/utils/component/ComponentContext.java @@ -31,6 +31,7 @@ import javax.naming.ConfigurationException; import org.apache.log4j.Logger; import org.springframework.aop.framework.Advised; +import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.config.AutowireCapableBeanFactory; import org.springframework.context.ApplicationContext; @@ -72,8 +73,14 @@ public class ComponentContext implements ApplicationContextAware { Map interceptableComponents = getApplicationContext().getBeansOfType(ComponentMethodInterceptable.class); for (Map.Entry entry : interceptableComponents.entrySet()) { - Object bean = getTargetObject(entry.getValue()); - beanFactory.configureBean(bean, entry.getKey()); + try { + Object bean = getTargetObject(entry.getValue()); + beanFactory.configureBean(bean, entry.getKey()); + } catch (BeansException e){ + s_logger.error(String.format("Could not load bean due to: [%s]. The service will be stopped. Please investigate the cause of the error or contact your support team.", e.getMessage()), e); + System.exit(1); + } + } Map lifecycleComponents = getApplicationContext().getBeansOfType(ComponentLifecycle.class);