2017-02-01 7 views
3

Я положил все необходимые банки в классе-пути, но до сих пор получаю следующее сообщение об ошибке:Java Рычажный Ошибка при реализации Hibernate Search

Failed to define class org.hibernate.search.impl.FullTextSessionImpl in Module "com.cirq:main" from local module loader @7a08c0a3 (roots: /home/jboss/modules): java.lang.LinkageError: Failed to link org/hibernate/search/impl/FullTextSessionImpl (Module "com.cirq:main" from local module loader @7a08c0a3 (roots: /home/jboss/modules)) 
     at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:396) 
     at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243) 
     at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73) 
     at org.jboss.modules.Module.loadModuleClass(Module.java:517) 
     at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) 
     at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) 
     at org.hibernate.search.impl.ImplementationFactory.createFullTextSession(ImplementationFactory.java:34) [hibernate-search-orm-5.6.0.Final.jar:5.6.0.Final] 
     at org.hibernate.search.Search.getFullTextSession(Search.java:44) [hibernate-search-orm-5.6.0.Final.jar:5.6.0.Final] 
     at com.cirq.dao.implementation.UserInformationSearchDAO$2.doInHibernate(UserInformationSearchDAO.java:72) [classes:] 
     at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:367) [spring.jar:2.0.2] 
     at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:333) [spring.jar:2.0.2] 
     at com.cirq.dao.implementation.UserInformationSearchDAO.searchForUserInfo(UserInformationSearchDAO.java:58) [classes:] 
     at com.cirq.controller.devicecontroller.UserInformationSearchLucene.handleRequest(UserInformationSearchLucene.java:63) [classes:] 
     at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:45) [spring.jar:2.0.2] 
     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:820) [spring.jar:2.0.2] 
     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:755) [spring.jar:2.0.2] 
     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396) [spring.jar:2.0.2] 
     at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350) [spring.jar:2.0.2] 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:840) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:622) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:560) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:488) [jbossweb-7.0.13.Final.jar:] 
     at com.cirq.controller.devicecontroller.DeviceEndPoint.handleRequest(DeviceEndPoint.java:73) [classes:] 
     at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:45) [spring.jar:2.0.2] 
     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:820) [spring.jar:2.0.2] 
     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:755) [spring.jar:2.0.2] 
     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396) [spring.jar:2.0.2] 
     at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350) [spring.jar:2.0.2] 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:] 
     at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:205) [cors-filter-1.3.2.jar:] 
     at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:266) [cors-filter-1.3.2.jar:] 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:] 
     at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final] 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:] 
     at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_111] 
Caused by: java.lang.NoClassDefFoundError: org/hibernate/engine/spi/SessionImplementor 
     at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_111] 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:803) [rt.jar:1.7.0_111] 
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [rt.jar:1.7.0_111] 
     at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:327) 
     at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:391) 
     ... 54 more 
Caused by: java.lang.ClassNotFoundException: org.hibernate.engine.spi.SessionImplementor from [Module "com.cirq:main" from local module loader @7a08c0a3 (roots: /home/jboss/modules)] 
     at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) 
     at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) 
     ... 59 more 

Это мой фрагмент кода:

// Ошибка на линия 1.

 FullTextSession fullTextSession1 = Search.getFullTextSession(session); 

      QueryBuilder qb = fullTextSession1.getSearchFactory() 
        .buildQueryBuilder().forEntity(Book.class).get(); 

      org.apache.lucene.search.Query query = qb.keyword().onFields("mobileno","fname") 
        .matching(searchText).createQuery(); 

      org.hibernate.Query hibQuery = fullTextSession1.createFullTextQuery(query, UserInformation.class); 

      List results = hibQuery.list(); 
      System.out.println("Result Ser Size " +results.size()); 
      return results; 
  • баночки в классе-пути:

    1. antlr.jar
    2. одноклассник-1.3.0.jar
    3. Викисклада коллекции-3.2.1.jar
    4. dom4j-1.6.1.jar
    5. hibernate3.jar
    6. hibernate- annotations.jar
    7. гибернации-entitymanager.jar
    8. зимуют-поиск-двигатель-5.6.0.Final.jar
    9. зимуют-поиск-ОРМ-5.6.0.Fina l.jar
    10. Javassist-3.20.0-GA.jar
    11. JBoss-каротажа 3.3.0.Final.jar
    12. Lucene-ядро-5.5.2.jar
    13. XML-АПИС-1.3. 03.jar

Spring используется версия: 2.0 и Hibernate версии используется: 3,0

Spring Bean Congif файл:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> 


    <!-- ========================== DATASOURCE CONFIGURATION =============================== --> 
    <!-- OLD comment --> 
    <!-- <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 
     <property name="url" value="jdbc:mysql://localhost:3306/onlineadmissions"/> 
     <property name="username" value="root"/> 
     <property name="password" value="iamme1234"/> 
     </bean> --> 

    <bean id="dataSource" 
     class="org.springframework.jndi.JndiObjectFactoryBean" 
     destroy-method="close"> 
     <property name="jndiName" value="java:/cirq" /> 
    </bean> 
    <!-- =========================== HIBERNATE IMPLEMENTATIONS ========================== --> 

    <bean id="dbSessionFactory" 
     class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 

     <property name="dataSource"> 
      <ref bean="dataSource" /> 
     </property> 
     <property name="configLocation"> 
      <value>.\WEB-INF\hibernate.cfg.xml</value> 
     </property> 
     <property name="configurationClass"> 
      <value>org.hibernate.cfg.AnnotationConfiguration</value> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.bytecode.provider">javassist</prop> 
       <prop key="hibernate.show_sql">false</prop> 
       <prop key="hibernate.cache.use_second_level_cache">false</prop> 
       <prop key="hibernate.hbm2ddl.auto">update</prop> 
       <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
       <prop key="hibernate.connection.characterEncoding">utf8</prop> 

       <prop key="hibernate.search.default.directory_provider"> 
        org.hibernate.search.store.impl.FSDirectoryProvider</prop> 
       <prop key="hibernate.search.default.indexBase"> 
        D:\IntelliJWorkspace\cirqfinedine\index</prop> 
      </props> 
     </property> 

    </bean> 


    <bean id="hibernateTemplate" 
     class="org.springframework.orm.hibernate3.HibernateTemplate"> 
     <property name="sessionFactory"> 
      <ref bean="dbSessionFactory" /> 
     </property> 
    </bean> 

    <bean id="cachedHibernateTemplate" 
     class="org.springframework.orm.hibernate3.HibernateTemplate"> 
     <property name="sessionFactory"> 
      <ref bean="dbSessionFactory" /> 
     </property> 
     <property name="cacheQueries"> 
      <value>true</value> 
     </property> 
    </bean> 


    <!-- =========================== DAO IMPLEMENTATIONS ========================== --> 


    <bean id="userInformationSearchDAO" 
      class="com.cirq.dao.implementation.UserInformationSearchDAO"> 
     <property name="hibernateTemplate"> 
      <ref bean="hibernateTemplate" /> 
     </property> 
    </bean> 

конфигурации Hibernate Файл:

<?xml version='1.0' encoding='UTF-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC 
      "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
      "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 

<hibernate-configuration> 
    <session-factory> 
     <mapping class="com.cirq.model.CashDetails" /> 
     <mapping class="com.cirq.model.Category" /> 
     <mapping class="com.cirq.model.Customers" /> 
     <mapping class="com.cirq.model.MenuItems" /> 
     <mapping class="com.cirq.model.OrderDetails" /> 
     <mapping class="com.cirq.model.Orders" /> 
</session-factory> 

</hibernate-configuration> 

Persistance.xml файл:

<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
    http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
    version="1.0"> 

<!-- This mapping file provided for the hibernateTool facility --> 
    <persistence-unit name="kuyke"> 

     <!-- The provider only needs to be set if you use several JPA providers 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     --> 
     <!-- This is required to be spec compliant, Hibernate however supports 
      auto-detection even in JSE.--> 
     <class>com.cirq.model.CashDetails</class> 
     <class>com.cirq.model.Category</class> 
     <class>com.cirq.model.Customers</class> 
     <class>com.cirq.model.MenuItems</class> 
     <class>com.cirq.model.OrderDetails</class> 
     <class>com.cirq.model.Orders</class> 

     <properties> 
      <!-- Scan for annotated classes and Hibernate mapping XML files --> 
      <property name="hibernate.archive.autodetection" value="class, hbm"/> 

     <!-- Uncomment For DEV--> 
      <property name="hibernate.connection.driver_class" 
        value="com.mysql.jdbc.Driver"/> 

      <property name="hibernate.connection.url" 
        value="jdbc:mysql://localhost:3306/cirq?autoReconnect=true"/> 

      <property name="hibernate.connection.username" 
        value="smartideas"/> 
      <property name="hibernate.connection.password" 
        value="smart543ideas"/> 

      <property name="hibernate.c3p0.min_size" 
        value="5"/> 
      <property name="hibernate.c3p0.max_size" 
        value="20"/> 
      <property name="hibernate.c3p0.timeout" 
        value="300"/> 
      <property name="hibernate.c3p0.max_statements" 
        value="50"/> 
      <property name="hibernate.c3p0.idle_test_period" 
        value="3000"/> 

      <property name="hibernate.dialect" 
        value="org.hibernate.dialect.MySQL5InnoDBDialect"/> 
      <property name="hibernate.cache.use_query_cache" value="true"/> 


     <!--  Enable Hibernate's automatic session context management 
      <property name="current_session_context_class" value="thread"/> 

      Disable the second-level cache 
      <property name="cache.provider_class" value="org.hibernate.cache.internal.NoCacheProvider"/>--> 

      <!-- Store index in memory, so no index cleanup required after tests --> 
      <property name="hibernate.search.default.directory_provider" value="org.hibernate.search.store.impl.RAMDirectoryProvider"/> 


      <!-- Would set this in production application. Index stored on disk. --> 
      <!-- <property name="hibernate.search.default.directory_provider"> 
       org.hibernate.search.store.impl.FSDirectoryProvider 
      </property> 
      <property name="hibernate.search.default.indexBase">c:/temp/lucene/indexes</property> 
      --> 

      <!-- Define Hibernate entity mappings. Standard Hibernate stuff - not specific 
       to Hibernate Search. --> 


     </properties> 
    </persistence-unit> 

</persistence> 

Заранее спасибо!

+0

Похоже, что несовместимость между Spring и Hibernate используется. Можете ли вы разместить свой конфигурационный файл весны? –

+0

Эй, спасибо за ответ. Я добавил файлы конфигурации, пожалуйста, проверьте. –

ответ

1

В сообщении об ошибке сообщается, что вы используете версии компонентов, которые несовместимы друг с другом.

Ваша версия Hibernate ORM устарела. То же самое для вашей версии Spring. Вы не сможете использовать Hibernate Search 5.6.0.Final с ними. Если вы хотите, чтобы они работали вместе, вы должны выбрать версии, совместимые друг с другом. И я бы рекомендовал вам использовать последнюю стабильную версию Spring и последнюю версию Hibernate ORM, совместимую с Hibernate Search 5.6.0.Final.

С Hibernate Search 5.6.0.Final, вы должны использовать новейший Hibernate ORM 5.1.x (5.1.4.Final в тот момент, когда я это пишу).

+0

Спасибо за ответ. Можете ли вы предложить мне, какая версия спящего режима совместима с весной 2. Так как в настоящий момент я не могу изменить версию весны, а также версию спящего режима. –

+0

Это очень плохая идея, и я уверен, что у вас будет много ошибок, но вы можете начать свою археологию, посмотрев http://search.maven.org/#search%7Cgav%7C6%7Cg%3A%22org. hibernate% 22% 20AND% 20a% 3A% 22hibernate-search-parent% 22. Перейдите на последнюю страницу и нажмите на ссылку pom и проверьте версию Hibernate, указанную в pom. Посмотрите только на версии Final или GA. Версия 3 Hibernate слишком расплывчата, поэтому найдите номер полной версии и найдите самую последнюю версию Hibernate Search, основанную на версии ORM X.Y. –

+0

Спасибо за ответ ..! –

Смежные вопросы