복붙노트

[SPRING] ContextLoader를 디버깅하는 방법 - 컨텍스트 초기화에 실패하고 BeanCreationException이 발생했습니다.

SPRING

ContextLoader를 디버깅하는 방법 - 컨텍스트 초기화에 실패하고 BeanCreationException이 발생했습니다.

사람들이이 문제를 해결할 때 겪는 여러 문제에 대한 게시물을 볼 수 있습니다. ERROR context.ContextLoader - 컨텍스트 초기화에 실패했습니다. org.springframework.beans.factory.BeanCreationException :

문제를 격리하기 위해 디버깅을 켜는 방법이 있습니까?

"그 같은 속성 없음 : getOrg for class : groovy.lang.MetaClassImpl"에 대한 불평은 우리 클래스의 하나가 아니며, 우리 코드베이스와 관련된 정보를 얻을 수있는 방법이 있습니까?

우리의 경우 우리는 Tomcat에서 Grails 1.2.1 응용 프로그램을 배포하고 잘 실행했습니다. 그런 다음 Tomcat이 DB 백업을 중단 한 다음 앱을 다시 시작했습니다. 환경이 변경되지 않은 동일한 WAR (예 : 구성 파일 변경 없음)가 이제이 오류를 발생시킵니다. 우리는 이전에도이 동작을 간헐적으로 관찰했지만 probing 문제를 해결하기 위해 다시 시작했습니다.

우리의 개발 환경에서 동일한 응용 프로그램은 "grails prod run-app"및 "grails prod run-war"로 잘 실행됩니다.

스택 트레이스 스 니펫 :

<<<<<<<< snip >>>>>>>>>>>>>>>>>>>>>>>>>

Caused by: groovy.lang.MissingPropertyException: No such property: getOrg for class: groovy.lang.MetaClassImpl
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:49)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.setProperty(ScriptBytecodeAdapter.java:485)
        at org.codehaus.groovy.grails.plugins.orm.hibernate.HibernatePluginSupport.handleLazyProxy(HibernatePluginSupport.groovy:413)
        at org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder.bindProperty(GrailsDomainBinder.java:2108)
        at org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder.createProperty(GrailsDomainBinder.java:1829)
        at org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder.createClassProperties(GrailsDomainBinder.java:1565)
        at org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder.bindJoinedSubClass(GrailsDomainBinder.java:1272)
        at org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder.bindSubClass(GrailsDomainBinder.java:1219)
        at org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder.bindSubClasses(GrailsDomainBinder.java:1186)
        at org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder.bindRoot(GrailsDomainBinder.java:1160)
        at org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder.bindClass(GrailsDomainBinder.java:1040)
        at org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsAnnotationConfiguration.secondPassCompile(GrailsAnnotationConfiguration.java:145)
        at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1148)
        at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:717)
        at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1460)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1398)

해결법

  1. ==============================

    1.org.springframework 패키지와 org.codehaus.groovy에 대해 로깅 레벨을 DEBUG로 설정하면 더 자세한 정보를 얻을 수 있습니다.

    org.springframework 패키지와 org.codehaus.groovy에 대해 로깅 레벨을 DEBUG로 설정하면 더 자세한 정보를 얻을 수 있습니다.

    그러나 grails의 경우 때때로 바람둥이를 멈추고, 일과 임시 전화 번호부를 제거하고 바람둥이를 다시 시작하는 것을 돕는다.

  2. ==============================

    2.1.3.4에서 grails를 얻었고, tomcat 작업 디렉토리와 임시 디렉토리 ($ CATALINA_BASE / temp, $ CATALINA_BASE / work)를 제거하면 문제가 해결되는 것 같습니다.

    1.3.4에서 grails를 얻었고, tomcat 작업 디렉토리와 임시 디렉토리 ($ CATALINA_BASE / temp, $ CATALINA_BASE / work)를 제거하면 문제가 해결되는 것 같습니다.

  3. from https://stackoverflow.com/questions/3834733/how-to-debug-contextloader-context-initialization-failed-and-beancreationexcep by cc-by-sa and MIT license