gpt4 book ai didi

java - AnnotationSessionFactoryBean 需要 lucene 类

转载 作者:行者123 更新时间:2023-11-30 09:53:04 24 4
gpt4 key购买 nike

我正在尝试通过 spring transactions 向现有的 webapp 添加事务支持。

我最近将 session 工厂类从 LocalSessionFactoryBean 更改为 AnnotationSessionFactoryBean。

现在我在 webapp 启动时收到以下错误:

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

我不明白为什么现在我需要在我的 webapp 中包含 lucene。我不打算将它用于搜索,并且发生此错误对我来说似乎是非常错误的。

最佳答案

没有看到完整的 strack 跟踪,我不能确定,但​​我的猜测是这与 Hibernate Search 有关,它在后台使用 Lucene。

AnnotationSessionFactoryBean 将尝试自动检测类路径中是否存在 Hibernate Search,如果找到则初始化它。根据您的环境,它可能会在找不到 Lucene 之前走得太远。

在您的类路径中放置一个 grub,查看是否存在 Hibernate Search,并查看是否可以将其删除。另一种选择是将 hibernate.search.autoregister_listeners hibernate 属性设置为 false,这应该明确禁用 Hibernate Search 的注册。

关于java - AnnotationSessionFactoryBean 需要 lucene 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4028143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com