lucene - Hibernate Search 4.1.1 NoSuchMethodError FSDirectory.open -
i trying use hibernate-search 4.1.1-final + lucene 3.5 hibernate 4.1.3 , spring 3.1.1 frameworks (dependency using maven) enable pojo-based text search. followed hibernate-search documentation. based on doc, here hibernate configuration:
<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>
i turned on log (debug) hibernate-search, shows:
[info,version,pool-2-thread-1] hsearch000034: hibernate search 4.1.1.final [debug,configcontext,pool-2-thread-1] setting lucene compatibility 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'
at startup. , after that, following exception when run tomcat server on windows 7 64-bit machine.
caused by: org.springframework.beans.factory.beancreationexception: error creating bean name 'sessionfactory' defined in servletcontext resource [/web-inf/config/spring/application-context.xml]: invocation of init method failed; nested exception java.lang.nosuchmethoderror: org.apache.lucene.store.fsdirectory.open(ljava/io/file;lorg/apache/lucene/store/lockfactory;)lorg/apache/lucene/store/fsdirectory; @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1455) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:519) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:456) @ org.springframework.beans.factory.support.abstractbeanfactory$1.getobject(abstractbeanfactory.java:294) @ org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:225) @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:291) @ org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:193) @ 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; @ org.hibernate.search.store.impl.directoryproviderhelper$fsdirectorytype.getdirectory(directoryproviderhelper.java:365) @ org.hibernate.search.store.impl.directoryproviderhelper.createfsindex(directoryproviderhelper.java:137) @ org.hibernate.search.store.impl.fsdirectoryprovider.initialize(fsdirectoryprovider.java:70) @ org.hibernate.search.store.impl.directoryproviderfactory.createdirectoryprovider(directoryproviderfactory.java:84) @ org.hibernate.search.indexes.impl.directorybasedindexmanager.createdirectoryprovider(directorybasedindexmanager.java:216) @ org.hibernate.search.indexes.impl.directorybasedindexmanager.initialize(directorybasedindexmanager.java:89) @ org.hibernate.search.indexes.impl.indexmanagerholder.createdirectorymanager(indexmanagerholder.java:241) @ org.hibernate.search.indexes.impl.indexmanagerholder.buildentityindexbinding(indexmanagerholder.java:111) @ org.hibernate.search.spi.searchfactorybuilder.initdocumentbuilders(searchfactorybuilder.java:411) @ org.hibernate.search.spi.searchfactorybuilder.buildnewsearchfactory(searchfactorybuilder.java:221) @ org.hibernate.search.spi.searchfactorybuilder.buildsearchfactory(searchfactorybuilder.java:145) @ org.hibernate.search.event.impl.fulltextindexeventlistener.initialize(fulltextindexeventlistener.java:129) @ org.hibernate.search.hcore.impl.hibernatesearchintegrator.integrate(hibernatesearchintegrator.java:82) @ org.hibernate.internal.sessionfactoryimpl.<init>(sessionfactoryimpl.java:306) @ org.hibernate.cfg.configuration.buildsessionfactory(configuration.java:1744) @ org.hibernate.cfg.configuration.buildsessionfactory(configuration.java:1782) @ org.springframework.orm.hibernate4.localsessionfactorybuilder.buildsessionfactory(localsessionfactorybuilder.java:189) @ org.springframework.orm.hibernate4.localsessionfactorybean.buildsessionfactory(localsessionfactorybean.java:350) @ org.springframework.orm.hibernate4.localsessionfactorybean.afterpropertiesset(localsessionfactorybean.java:335) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.invokeinitmethods(abstractautowirecapablebeanfactory.java:1514) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1452) ... 52 more
i still exception, if remove "hibernate.search.lucene_version" property configuration.
the nosuchmethoderror means have wrong version of lucene in classpath.
you might want check duplicates, , use command line tool such tattletale find class , library duplicates.
Comments
Post a Comment