Spring启动升级到1.2.0+似乎打破了log4j2兼容性和其他东西?

时间:2015-01-09 16:00:43

标签: spring-boot

我有一个使用log4j2的spring启动应用程序(如:Changing JHipster to use log4j2)。我是一个Spring boot 1.2.0.M2。

一旦升级到1.2.0(或1.2.1)版本。看起来日志记录无法正常工作 gradle bootRun(或等级运行)

我在输出中看到以下内容看起来Hazecast存在需要更新的问题您是如何读取其余错误的?

对于日志记录,它只是不再拿起log4j2 xml文件而我需要把它放在不同的位置?

更新:我解决了异常......这里是spring boot应用程序的更新输出:

${LOG_PATTERN}:app:findMainClass
:app:run
${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_
PATTERN}
${LOG_PATTERN}
${LOG_PATTERN}                                                                                                    ${LOG_PATTERN}
${LOG_PATTERN}
${LOG_PATTERN}${LOG_PATTERN}
${LOG_PATTERN}${LOG_PATTERN}
${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}

如你所见。没有例外,日志记录无法正常工作 关于我如何调试的任何想法?

OLD OUTPUT ILE IGNORE: 输出中:

${LOG_PATTERN}:app:findMainClass
:app:run
${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}
${LOG_PATTERN}
${LOG_PATTERN} 
    java.lang.NullPointerException
        at com.hazelcast.web.WebFilter.init(WebFilter.java:118) ~[hazelcast-wm-3.2.5.jar:3.2.5]
        at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) ~[tomcat-embed-core-8.0.15.jar:8.0.15]
        at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:109) ~[tomcat-embed-core-8.0.15.jar:8.0.15]
        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4615) [tomcat-embed-core-8.0.15.jar:8.0.15]
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5222) [tomcat-embed-core-8.0.15.jar:8.0.15]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.0.15.jar:8.0.15]
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409) [tomcat-embed-core-8.0.15.jar:8.0.15]
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399) [tomcat-embed-core-8.0.15.jar:8.0.15]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_25]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_25]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_25]
        at java.lang.Thread.run(Thread.java:745) [?:1.8.0_25]
                                                                                                                                                             $
{LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}${LOG_PATTERN}
${LOG_PATTERN}
${LOG_PATTERN}
${LOG_PATTERN} org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'viewControllerHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.HandlerMapping]: Factory method 'viewControllerHandlerMapping' threw exception; nested exception is java.lang.IllegalStateException: The resources may not be accessed if they are not currently started
        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:602) ~[spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1111) ~[spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1006) ~[spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504) ~[spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) ~[spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302) ~[spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298) ~[spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) ~[spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:762) ~[spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) ~[spring-context-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) [spring-context-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:109) [spring-boot-1.2.0.RELEASE.jar:1.2.0.RELEASE]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691) [spring-boot-1.2.0.RELEASE.jar:1.2.0.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) [spring-boot-1.2.0.RELEASE.jar:1.2.0.RELEASE]
        at main(Application.java:82) [main/:?]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.HandlerMapping]: Factory method 'viewControllerHandlerMapping' threw exception; nested exception is java.lang.IllegalStateException: The resources may not be accessed if they are not currently started

        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189) ~[spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:591) ~[spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        ... 15 more
Caused by: java.lang.IllegalStateException: The resources may not be accessed if they are not currently started
        at org.apache.catalina.webresources.StandardRoot.validate(StandardRoot.java:245) ~[tomcat-embed-core-8.0.15.jar:8.0.15]
        at org.apache.catalina.webresources.StandardRoot.getResource(StandardRoot.java:212) ~[tomcat-embed-core-8.0.15.jar:8.0.15]
        at org.apache.catalina.webresources.StandardRoot.getResource(StandardRoot.java:206) ~[tomcat-embed-core-8.0.15.jar:8.0.15]
        at org.apache.catalina.core.ApplicationContext.getResource(ApplicationContext.java:533) ~[tomcat-embed-core-8.0.15.jar:8.0.15]
        at org.apache.catalina.core.ApplicationContextFacade.getResource(ApplicationContextFacade.java:199) ~[tomcat-embed-core-8.0.15.jar:8.0.15]
        at org.springframework.web.context.support.ServletContextResource.exists(ServletContextResource.java:102) ~[spring-web-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.addStaticIndexHtmlViewControllers(WebMvcAutoConfiguration.java:273) ~[spring-boot-autoconfigure-1.2.0.RELEASE.jar:1.2.0.RELEASE]
        at org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.addViewControllers(WebMvcAutoConfiguration.java:268) ~[spring-boot-autoconfigure-1.2.0.RELEASE.jar:1.2.0.RELEASE]
        at org.springframework.web.servlet.config.annotation.WebMvcConfigurerComposite.addViewControllers(WebMvcConfigurerComposite.java:119) ~[spring-webmvc-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration.addViewControllers(DelegatingWebMvcConfiguration.java:75) ~[spring-webmvc-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport.viewControllerHandlerMapping(WebMvcConfigurationSupport.java:346) ~[spring-webmvc-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$EnableWebMvcConfiguration$$EnhancerBySpringCGLIB$$6be536e2.CGLIB$viewControllerHandlerMapping$30(<generated>) ~[spring-core-4.1.3.RELEASE.jar:1.2.0.RELEASE]
        at org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$EnableWebMvcConfiguration$$EnhancerBySpringCGLIB$$6be536e2$$FastClassBySpringCGLIB$$2c3a8301.invoke(<generated>) ~[spring-core-4.1.3.RELEASE.jar:1.2.0.RELEASE]
        at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) ~[spring-core-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:309) ~[spring-context-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$EnableWebMvcConfiguration$$EnhancerBySpringCGLIB$$6be536e2.viewControllerHandlerMapping(<generated>) ~[spring-core-4.1.3.RELEASE.jar:1.2.0.RELEASE]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_25]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_25]
        at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0_25]
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162) ~[spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:591) ~[spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
        ... 15 more

2 个答案:

答案 0 :(得分:0)

当我查看3.2.5代码和堆栈跟踪时,它会在此代码片段的最后一行出错:

public final void init(final FilterConfig config) throws ServletException {
    filterConfig = config;
    servletContext = config.getServletContext();
    initInstance();
    String mapName = getParam("map-name");
    if (mapName != null) {
        clusterMapName = mapName;
    } else {
        clusterMapName = "_web_" + servletContext.getServletContextName();
    }
    try {
        Config hzConfig = hazelcastInstance.getConfig();<<----------

您可以发布一些额外的日志记录,因为显然还没有创建HZ实例。

如何为HZ配置log4j2? HZ 3.2.5不支持log4j2。我相信这是在3.3中添加的。也许HZ失败了,因为记录器无法创建?

答案 1 :(得分:0)

所以这里的问题是我的log4j2.xml文件。设置用于工作的LOG_PATTERN变量,现在我必须删除该变量。

这个gits: https://gist.github.com/hooligan495/c321f98f6c8f5338f726

显示旧的和新的。