AnnotationSessionFactoryBean erfordert lucene Klassen
-
26-09-2019 - |
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.
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.