2012-06-11 5 views
0

Hibernate-Search 4.1.1-Final + Lucene 3.5를 Hibernate 4.1.3 및 Spring 3.1.1 프레임 워크 (Maven을 사용한 종속성)와 함께 사용하여 POJO 기반 텍스트를 사용하려고합니다. 수색. 나는 Hibernate-Search 문서를 따랐다. 내가 최대 절전 모드 검색에 대한 로그 (DEBUG) 켜져Hibernate Search 4.1.1 NoSuchMethodError FSDirectory.open

<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
      <property name="dataSource" ref="dataSource" /> 
    <property name="mappingResources"> 
     <list> 
      <value>com/mytutorial/User.hbm.xml</value> 
        </list> 
    </property> 
    <property name="hibernateProperties"> 
     <props> 
      <!-- Other Hibernate-specific properties --> 
      <prop key="hibernate.search.default.directory_provider">filesystem</prop> 
      <prop key="hibernate.search.default.indexBase">C:/temp/</prop> 
      <prop key="hibernate.search.lucene_version">LUCENE_35</prop> 
     </props> 
    </property> 
</bean> 

, 그것은 보여줍니다 : 시작에서

[INFO,Version,pool-2-thread-1] HSEARCH000034: Hibernate Search 4.1.1.Final 
[DEBUG,ConfigContext,pool-2-thread-1] Setting Lucene compatibility to Version LUCENE_35 
[DEBUG,ConfigContext,pool-2-thread-1] Using default similarity implementation: org.apache.lucene.search.DefaultSimilarity 
[WARN,DirectoryProviderHelper,pool-2-thread-1] HSEARCH000041: Index directory not found, creating: 'C:\temp\com.mytutorial.User' 

의 DoC를 바탕으로, 여기 내 최대 절전 모드 구성입니다. 그리고 나서 Windows 7 64 비트 시스템에서 Tomcat 서버를 실행할 때 다음 예외가 발생합니다.

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/config/spring/application-context.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.apache.lucene.store.FSDirectory.open(Ljava/io/File;Lorg/apache/lucene/store/LockFactory;)Lorg/apache/lucene/store/FSDirectory; 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322) 
    ... 45 more 
Caused by: java.lang.NoSuchMethodError: org.apache.lucene.store.FSDirectory.open(Ljava/io/File;Lorg/apache/lucene/store/LockFactory;)Lorg/apache/lucene/store/FSDirectory; 
    at org.hibernate.search.store.impl.DirectoryProviderHelper$FSDirectoryType.getDirectory(DirectoryProviderHelper.java:365) 
    at org.hibernate.search.store.impl.DirectoryProviderHelper.createFSIndex(DirectoryProviderHelper.java:137) 
    at org.hibernate.search.store.impl.FSDirectoryProvider.initialize(FSDirectoryProvider.java:70) 
    at org.hibernate.search.store.impl.DirectoryProviderFactory.createDirectoryProvider(DirectoryProviderFactory.java:84) 
    at org.hibernate.search.indexes.impl.DirectoryBasedIndexManager.createDirectoryProvider(DirectoryBasedIndexManager.java:216) 
    at org.hibernate.search.indexes.impl.DirectoryBasedIndexManager.initialize(DirectoryBasedIndexManager.java:89) 
    at org.hibernate.search.indexes.impl.IndexManagerHolder.createDirectoryManager(IndexManagerHolder.java:241) 
    at org.hibernate.search.indexes.impl.IndexManagerHolder.buildEntityIndexBinding(IndexManagerHolder.java:111) 
    at org.hibernate.search.spi.SearchFactoryBuilder.initDocumentBuilders(SearchFactoryBuilder.java:411) 
    at org.hibernate.search.spi.SearchFactoryBuilder.buildNewSearchFactory(SearchFactoryBuilder.java:221) 
    at org.hibernate.search.spi.SearchFactoryBuilder.buildSearchFactory(SearchFactoryBuilder.java:145) 
    at org.hibernate.search.event.impl.FullTextIndexEventListener.initialize(FullTextIndexEventListener.java:129) 
    at org.hibernate.search.hcore.impl.HibernateSearchIntegrator.integrate(HibernateSearchIntegrator.java:82) 
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:306) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1744) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1782) 
    at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:189) 
    at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:350) 
    at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:335) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452) 
    ... 52 more 

나는 아직도 내가 구성에서 "hibernate.search.lucene_version" 속성을 제거하더라도 예외를 얻을.

답변

0

NoSuchMethodError은 classpath에 잘못된 버전의 Lucene이 있음을 의미합니다.

또한 중복을 확인하고 Tattletale과 같은 명령 줄 도구를 사용하여 클래스 및 라이브러리 복제본을 쉽게 찾을 수 있습니다.

관련 문제