Spring MVC代码 - 部署时会引发HSEARCH000103异常

时间:2015-08-21 06:08:13

标签: hibernate spring-mvc lucene tomcat7 hibernate-search

在我们的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

任何帮助,将不胜感激。

2 个答案:

答案 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可以读取和写入的目录。