2016-04-29 2 views
0

Мы получили приложение без веб-контекст со следующими зависимостями:Elasticsearch + Log4j2 + проблемы Spring выключение

spring-boot-starter 
spring-boot-starter-log4j2 
spring-boot-starter-data-elasticsearch 

С Elasticsearch 2.2 при завершении работы всегда это исключение:

ERROR Unable to register shutdown hook because JVM is shutting down. java.lang.IllegalStateException: Cannot add new shutdown hook as this is not started. Current state: STOPPED 
at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry.addShutdownCallback(DefaultShutdownCallbackRegistry.java:113) 
at org.apache.logging.log4j.core.impl.Log4jContextFactory.addShutdownCallback(Log4jContextFactory.java:273) 
at org.apache.logging.log4j.core.LoggerContext.setUpShutdownHook(LoggerContext.java:256) 
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:216) 
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:145) 
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:41) 
at org.apache.logging.log4j.LogManager.getContext(LogManager.java:182) 
at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:103) 
at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43) 
at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:42) 
at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29) 
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358) 
at org.elasticsearch.common.logging.slf4j.Slf4jESLoggerFactory.newInstance(Slf4jESLoggerFactory.java:39) 
at org.elasticsearch.common.logging.ESLoggerFactory.getLogger(ESLoggerFactory.java:62) 
at org.elasticsearch.common.logging.Loggers.getLogger(Loggers.java:146) 
at org.elasticsearch.common.logging.Loggers.getLogger(Loggers.java:109) 
at org.elasticsearch.common.logging.Loggers.getLogger(Loggers.java:75) 
at org.elasticsearch.common.component.AbstractComponent.<init>(AbstractComponent.java:38) 
at org.elasticsearch.cache.recycler.PageCacheRecycler.<init>(PageCacheRecycler.java:70) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
at org.elasticsearch.common.inject.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:50) 
at org.elasticsearch.common.inject.ConstructorInjector.construct(ConstructorInjector.java:86) 
at org.elasticsearch.common.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:104) 
at org.elasticsearch.common.inject.InjectorImpl$5$1.call(InjectorImpl.java:828) 
at org.elasticsearch.common.inject.InjectorImpl.callInContext(InjectorImpl.java:880) 
at org.elasticsearch.common.inject.InjectorImpl$5.get(InjectorImpl.java:823) 
at org.elasticsearch.common.inject.InjectorImpl.getInstance(InjectorImpl.java:867) 
at org.elasticsearch.client.transport.TransportClient.close(TransportClient.java:281) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at org.springframework.beans.factory.support.DisposableBeanAdapter.invokeCustomDestroyMethod(DisposableBeanAdapter.java:364) 
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:287) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:975) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:982) 
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1008) 
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:984) 
at org.springframework.context.support.AbstractApplicationContext$1.run(AbstractApplicationContext.java:903) 

кажется, быть проблемой log4j. Любой способ исправить или подавить это? Это даже имеет какой-то эффект?

ответ

1

Это известная ошибка. См. https://issues.apache.org/jira/browse/LOG4J2-1222. Он будет исправлен в версии 2.6. Причина в том, что что-то пытается зайти после того, как log4j уже отключен.

+0

Хорошая информация кажется, что мне нужно обновить ... –

Смежные вопросы