Как отладить ContextLoader - сбой инициализации контекста и исключение BeanCreationException - PullRequest
2 голосов
/ 01 октября 2010

Я вижу ряд сообщений о различных проблемах, с которыми сталкиваются люди при устранении этой проблемы: ERROR context.ContextLoader - Сбой инициализации контекста org.springframework.beans.factory.BeanCreationException:

Есть ли способ включить отладку, чтобы изолировать проблему?

Она жалуется на " Нет такого свойства: getOrg для класса: groovy.lang.MetaClassImpl ", ноэто не один из наших классов, есть ли какой-нибудь способ получить информацию, которая имеет отношение к нашей базе кода?

В нашем случае у нас было приложение Grails 1.2.1, развернутое и работающее просто отлично в Tomcat.Затем мы остановили Tomcat для резервного копирования БД, а затем перезапустили приложение.Та же самая WAR без изменений среды (т.е. без изменений файла конфигурации и т. Д.) Теперь выдает эту ошибку.Мы также наблюдали это периодически и раньше, но перезапуск использовался для исправления проблемы.

В нашей среде разработки то же приложение прекрасно работает как с «grails prod run-app», так и с «grails prod run».-war ".

Фрагменты трассировки стека:

2010-09-30 12: 10: 13,391 ОШИБКА context.ContextLoader - Сбой инициализации контекста org.springframework.beans.factory.BeanCreationException: Ошибка создания компонента с именем 'messageSource': Ошибка инициализации компонента;вложенное исключение: org.springframework.beans.factory.BeanCreationException: ошибка при создании компонента с именем'actionManager ': невозможно разрешить ссылку на компонент' sessionFactory 'при установке свойства компонента' sessionFactory ';вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка при создании компонента с именем 'sessionFactory': сбой вызова метода init;Вложенное исключение - groovy.lang.MissingPropertyException: такого свойства нет: getOrg для класса: groovy.lang.MetaClassImpl в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean.ap.aov.ap.aug.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory.doCreateBean (ReloadAwareAutowireCapableBeanFactory.java:129) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:450) в org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject (AbstractBeanFactory.java:290) в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:222)

<<<<<<< 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)

Ответы [ 2 ]

2 голосов
/ 01 октября 2010

Если вы установите уровень ведения журнала на DEBUG для пакетов org.springframework и org.codehaus.groovy, вы сможете получить более подробную информацию.

Но в случае с grails иногда помогает просто остановить tomcat, удалить каталоги work и temp и снова запустить tomcat.

1 голос
/ 03 октября 2010

Я получил это в Grails 1.3.4, и удаление директорий tomcat work и temp ($ CATALINA_BASE / temp, $ CATALINA_BASE / work), похоже, решает проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...