在我们的springmvc网站上,我们正在使用lucene进行hibernate搜索。编译代码时没有问题,但是当我尝试在运行Ubuntu 14.04 64位服务器的tomcat 7.0.52上部署代码时,我得到以下异常
信息:初始化Spring root WebApplicationContext 2015年8月20日 下午1:20:10 org.apache.catalina.core.StandardContext listenerStart SEVERE:将上下文初始化事件发送给侦听器的异常 类的实例 org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException:错误 使用名称' userService'创建bean:无法解析引用 bean' userManager'设置构造函数参数时;嵌套 异常是org.springframework.beans.factory.BeanCreationException: 创建名称' userManager':注入自动装配的bean时出错 依赖失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:不能 autowire方法:public void com.atcm.service.impl.UserManagerImpl.setUserDao(com.atcm.dao.UserDao); 嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 使用name' userDao'创建bean:注入资源依赖项 失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为' sessionFactory'的bean在类路径中定义 resource [applicationContext-dao.xml]:调用init方法 失败;嵌套异常是org.hibernate.search.SearchException: HSEARCH000103:无法初始化IndexManager com.atcm.model.User 在org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328) 在org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107) 在org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:627) 在org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148) 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1114) 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1017) 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504) 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) at org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:304) 在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) 在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300) 在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:700) 在org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760).............
hibernate属性文件如下,
app.search.index.basedir =目标/索引 hibernate.search.default.directory_provider =文件系统 hibernate.search.default.locking_strategy =简单 hibernate.search.default.exclusive_index_use =真 hibernate.search.lucene_version = LUCENE_35 hibernate.search.analyzer = org.apache.lucene.analysis.en.EnglishAnalyzer hibernate.search.worker.batch_size = 100
任何帮助,将不胜感激。
答案 0 :(得分:0)
在配置文件中检查此属性,并确保它指向现有文件夹
hibernate.search.default.indexBase = path/to/index/folder
如果文件夹存在,请检查权限并确保可以在其上书写
当然,请检查hibernate-context
中是否存在此属性<prop key="hibernate.search.default.indexBase">$CONF{hibernate.search.default.indexBase}</prop>
答案 1 :(得分:0)
我怀疑这个属性是用于开发的:
app.search.index.basedir=target/index
尝试更改target/index
以获取tomcat可以读取和写入的目录。