4

我收到以下错误:

在类路径资源 [jpaDaoContext.xml] 中定义名称为“org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0”的 bean 创建错误:bean 初始化失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建类路径资源 [jpaDaoContext.xml] 中定义的名称为“vodEntityManagerFactory”的 bean 时出错:调用 init 方法失败;嵌套异常是 javax.persistence.PersistenceException: [PersistenceUnit: vodPersistenceUnit] 找不到类或包

我在谷歌上看了一下,被告知要选择 transaction-type=RESOURCE_LOCAL 但设置已经是这样了。这些设置有什么问题:

 <?xml version="1.0" encoding="UTF-8"?>
<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">

    <!-- transaction-type is RESOURCE_LOCAL or JTA -->
    <persistence-unit name="vodPersistenceUnit"
        transaction-type="RESOURCE_LOCAL">

        <class>mypackage.persistent.HistoriqueAction</class>
        <class>mypackage.persistent.ParametresTechniques</class>
        <class>mypackage.persistent.TicketType</class>
        <class>mypackage.persistent.TransactionType</class>
        <class>mypackage.persistent.StatutSession</class>
        <class>mypackage.persistent.Statistique</class>
        <class>mypackage.persistent.StatUser</class>

        <!-- Avoid to scan *.class and *.hbm.xml -->
        <exclude-unlisted-classes />


    </persistence-unit>

</persistence>

问候

4

4 回答 4

6

我解决了这个问题。我不得不在文件“persistence.xml”中注释这三行:

   <!--class>mypackage.persistent.TicketType</class>
    <class>mypackage.persistent.TransactionType</class>
    <class>mypackage.persistent.StatutSession</class--> 

目前我不知道为什么它解决了这个问题。这个spring文件真的很难调试。

于 2013-08-06T06:49:12.320 回答
3

如果您必须注释掉“类”元素,很可能这些类之一没有定义,或者在类路径中不可用。

我遇到了同样的错误,一旦完全限定名称都正确,它就解决了。理想情况下,Hibernate 应该告诉您找不到哪个类,但遗憾的是在这种情况下它不会这样做。

于 2014-03-19T17:26:35.060 回答
1

你还没有这样做,把<property name="persistenceUnitName" value="vodPersistenceUnit" />你的 jpaDaoContext.xml 作为你的 entityManagerFactory bean定义的属性,比如:

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  <property name="persistenceUnitName" value="vodPersistenceUnit" />
  <property name="dataSource" ref="dataSource" />
  <property name="jpaVendorAdapter">...</property>
</bean>
于 2013-08-05T09:09:51.203 回答
0

我在尝试在 WebLogic 12.1.3 中运行 Spring Boot 应用程序时遇到了这个异常。在依赖关系树中,我发现 spring-tx 被包含在一个常见的项目库中。我们的特定应用程序仅调用 Web 服务,因此无需访问数据库。所以在我添加的库依赖项中:

<exclusions><exclusion> <groupId>org.springframework</groupId><artifactId>spring-tx</artifactId></exclusion></exclusions>
于 2018-03-15T21:46:24.050 回答