2010-10-26 4 views
2

Я пытаюсь добавить поддержку транзакций к существующему webapp через весенние транзакции.AnnotationSessionFactoryBean требует классов lucene

Недавно я изменил свой класс фабрики занятий с LocalSessionFactoryBean на AnnotationSessionFactoryBean.

теперь я получаю следующее сообщение об ошибке при запуске веб-приложение:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'txManager' defined in class path resource [context.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [context.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/apache/lucene/analysis/standard/StandardAnalyzer 
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275) 
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) 
at java.security.AccessController.doPrivileged(Native Method) 

так первопричиной его

nested exception is java.lang.NoClassDefFoundError: org/apache/lucene/analysis/standard/StandardAnalyzer 

Я не понимаю, почему сейчас мне нужно включить Lucene в моем веб-приложение. Я не планирую использовать его для поиска, и мне кажется очень неправильным, что эта ошибка возникает.

+1

Можно ли увидеть трассировку стека – skaffman

ответ

2

Не видя полной трассы, я не могу быть уверен, но я предполагаю, что это имеет какое-то отношение к Hibernate Search, в котором используется Lucene под капотом.

AnnotationSessionFactoryBean попытается автоматически определить наличие спящего режима поиска по пути к классам и инициализирует его, если он найден. Зависимая от вашей среды, она может дойти до того, как не найдет Луцену.

У вас есть куча на вашем пути к классу, посмотрите, есть ли Hibernate Search, и можете ли вы его удалить. Другой вариант - установить свойство hibernate hibernate.search.autoregister_listeners на false, что должно явно отключить регистрацию Hibernate Search.