2017-08-02 12 views
0

私はElastic SearchでHibernateを使用して、YouTubeの次のビデオ(Elasticsearch + Hibernate: from artisanal to industrial integration by Emmanuel Bernard/David Pilato) 、それは適切に働いていた。"ServletContextリソース"と "java.lang.AbstractMethodError"で定義された 'entityManagerFactory'という名前のBeanを作成中にエラーが発生しました

設定を変更した後、エラーが見つかりました。私は冬眠バージョンの問題があると信じています。わからない。他の情報が必要な場合は教えてください。

ありがとうございました。

エラー

Aug 02, 2017 11:48:43 AM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.AbstractMethodError 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:956) 
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:747) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) 
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403) 
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106) 
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4853) 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753) 
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729) 
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) 
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:621) 
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1835) 
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) 
at java.util.concurrent.FutureTask.run(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 

Caused by: java.lang.AbstractMethodError 
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:307) 
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1799) 
at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:96) 
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915) 
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:900) 
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:76) 
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343) 
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1633) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570) 
... 25 more 

のpom.xml

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-entitymanager</artifactId> 
    <version>4.2.19.Final</version> 
</dependency> 
<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-search-orm</artifactId> 
    <version>5.6.0.Beta3</version> 
</dependency> 
<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-search-elasticsearch</artifactId> 
    <version>5.6.2.Final</version> 
</dependency> 

applicationContext.xmlを

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:tx="http://www.springframework.org/schema/tx" 
xmlns:security="http://www.springframework.org/schema/security" 
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.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context.xsd 
    http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx.xsd 
    http://www.springframework.org/schema/security 
    http://www.springframework.org/schema/security/spring-security.xsd"> 

<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close"> 
    <property name="driverClassName" value="org.postgresql.Driver" /> 
    <property name="url" value="jdbc:postgresql://localhost:5432/project" /> 
    <property name="username" value="root" /> 
    <property name="password" value="root" /> 
    <property name="initialSize" value="1" /> 
</bean> 

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
    <property name="persistenceUnitName" value="autotekcarparts" /> 
    <property name="dataSource" ref="dataSource" /> 
</bean> 

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory" /> 
</bean> 

<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" /> 

<context:annotation-config /> 

<tx:annotation-driven /> 

<context:component-scan base-package="project.model" /> 

<security:authentication-manager> 
    <security:authentication-provider> 
     <security:jdbc-user-service data-source-ref="dataSource" 
     users-by-username-query="select email as username,password,'true' from users where email=?" 
     authorities-by-username-query="select u.email as username, a.role as authority from users u left join authorities a on 
     u.email = ? and u.id = a.user_id" /> 
    </security:authentication-provider> 
</security:authentication-manager> 

<security:http auto-config="true" use-expressions="true"> 

<security:form-login login-page="/login.html" 
    default-target-url="/Security.html" username-parameter="username" 
    authentication-failure-url="/login.html" password-parameter="password"/> 
</security:http> 

<security:global-method-security pre-post-annotations="enabled"/> 

persistence.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_2_0.xsd" 
version="2.0"> 

<persistence-unit name="autotekcarparts" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
    <properties> 
     <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/project" /> 
     <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" /> 
     <property name="javax.persistence.jdbc.user" value="root" /> 
     <property name="javax.persistence.jdbc.password" value="root" /> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" /> 
     <property name="hibernate.show_sql" value="true" /> 

     <!-- Elastic Search --> 
     <property name="hibernate.search.default.indexmanager" value="elasticsearch"/> 
     <property name="hibernate.search.default.elasticsearch.host" value="http://127.0.0.1:9200"/> 
     <property name="hibernate.search.default.elasticsearch.index_schema_management_strategy" value="CREATE"/> 
    </properties> 
</persistence-unit> 

答えて

0

アーチファクト休止-検索elasticsearch休止-検索ORMが同じ分布の一部である(休止検索)ので常に同じバージョンを持つ必要があります。

アーティファクトは、Hibernate EntityManagerの-をそれは異なる場合がありますが、あなたが本当に休止検索のバージョンを選択し、相互に互換性のORMを休止する必要がありますのでにHibernate ORMディストリビューションの一部です。

HibernateのORMは、メインプロジェクトであり、最初にリリースされているので、互換性は休止検索プロジェクトに記載されています。

もここでパブリッシュされたテーブルを参照してください: http://hibernate.org/search/downloads/

が、私はこれらのバージョンをお勧めします:

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-entitymanager</artifactId> 
    <version>5.2.11.Final</version> 
</dependency> 
<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-search-orm</artifactId> 
    <version>5.8.0.Final</version> 
</dependency> 
<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-search-elasticsearch</artifactId> 
    <version>5.8.0.Final</version> 
</dependency> 

は、あなたが持っている特定の例外は実際に依存関係をmistmatchingによって引き起こされます。特に、クラスパス上のJPA APIのバージョンが間違っていることが原因です。上記のHibernate成果物が適切なバージョンに依存しているため、関係のない依存関係を除外してください。

関連する問題

 関連する問題