Frage

Ich versuche, Transaktionsunterstützung zu einer bestehenden Webapp über Feder Transaktionen hinzuzufügen.

ich meine Session Factory-Klasse von LocalSessionFactoryBean zu AnnotationSessionFactoryBean kürzlich geändert.

Jetzt bekomme ich folgende Fehlermeldung, wenn die Webapp beginnt:

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)

so die Ursache es

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

Ich verstehe nicht, warum jetzt muss ich lucene in meinem Webapp enthalten. Ich plane nicht, es für die Suche zu verwenden, und es scheint mir sehr falsch, dass dieser Fehler auftritt.

War es hilfreich?

Lösung

Ohne die volle Strack Spur zu sehen, kann ich nicht sicher sein, aber meine Vermutung ist, dass dies etwas mit Hibernate Search zu tun hat, die Lucene unter der Haube verwendet.

Die AnnotationSessionFactoryBean versuchen, wird die automatische Erkennung der presense von Hibernate Search auf dem Classpath, und wird es initialisieren, wenn es gefunden. Je nach Einstellung Ihrer Umgebung, kann es so weit kommen, bevor ein Fehler Lucene zu finden.

Haben Sie einen grub herum auf Ihrem Classpath, ob Hibernate Search ist, und sehen Sie, wenn Sie es entfernen können. Eine weitere Option ist die hibernate.search.autoregister_listeners Hibernate-Eigenschaft auf false zu setzen, die explizit die Registrierung von Hibernate Search deaktivieren sollte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top