AnnotationSessionFactoryBean требует классов Lucene - PullRequest
2 голосов
/ 27 октября 2010

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

Недавно я изменил класс фабричной сессии с 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 Ответ

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

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

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

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

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