[英]Spring Boot application + Jolokia - exception during startup
[英]Spring swallow exception during startup
我有 bean(不要介意try catch
它是出于调试目的):
@Bean
public IgniteEntityConfiguration articleIgniteEntityConfig() {
try {
return IgniteEntityConfiguration.builder()
.cacheName("ArticleCache")
.dbTableName("ARTICLE")
.valueClass(Article.class)
.build();
} catch (Exception e) {
log.error("bean errr", e);
throw e;
}
}
在IgniteEntityConfiguration
,我验证通过了 class 并在需要时抛出异常。
在日志中我有:
log.error("bean errr", e);
;articleIgniteEntityConfig
; 在这里应用程序停止。 如果我删除try catch
块,甚至不会记录错误(抛出异常 - 我用调试器检查了它)。
这是为什么? bean 中的第一个异常不应该停止应用程序吗?
我找到了答案。 我没有得到有意义的错误,因为在IgniteRepositoryFactory
(ignite-spring-data_2.2) 中,所有原因错误都被吞没了,只有这个错误被抛出:
throw new IgniteException("Failed to initialize Ignite repository factory. Ignite instance or"
+ " IgniteConfiguration or a path to Ignite's spring XML "
+ "configuration must be defined in the"
+ " application configuration");
private Ignite igniteForRepoConfig(RepositoryConfig config) {
try {
String igniteInstanceName = evaluateExpression(config.igniteInstance());
return (Ignite)ctx.getBean(igniteInstanceName);
}
catch (BeansException ex) {
try {
String igniteConfigName = evaluateExpression(config.igniteCfg());
IgniteConfiguration cfg = (IgniteConfiguration)ctx.getBean(igniteConfigName);
try {
// first try to attach to existing ignite instance
return Ignition.ignite(cfg.getIgniteInstanceName());
}
catch (Exception ignored) {
// nop
}
return Ignition.start(cfg);
}
catch (BeansException ex2) {
try {
String igniteSpringCfgPath = evaluateExpression(config.igniteSpringCfgPath());
String path = (String)ctx.getBean(igniteSpringCfgPath);
return Ignition.start(path);
}
catch (BeansException ex3) {
throw new IgniteException("Failed to initialize Ignite repository factory. Ignite instance or"
+ " IgniteConfiguration or a path to Ignite's spring XML "
+ "configuration must be defined in the"
+ " application configuration");
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.