【问题标题】:error persistence.xml jpa 2 spring hibernate 3错误persistence.xml jpa 2弹簧休眠3
【发布时间】:2014-12-07 14:01:23
【问题描述】:

当我尝试在 Tomcat 7.0 中运行我的应用程序时

我使用hibernate 3 + spring + mysql作为数据库

我收到此异常:

Caused by: org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 19; cvc-complex-type.3.1: Value '2.0' of attribute 'version' of element 'persistence' is not valid with respect to the corresponding attribute use. Attribute 'version' has a fixed value of '1.0'.

applicationcontext.xml

<bean id="persistenceUnitManager"
    class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager">
    <property name="persistenceXmlLocation" value="classpath*:META-INF/classes/persistence_hibernate.xml"/>

    <property name="defaultDataSource" ref="dataSource"></property>
</bean>

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

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

<tx:annotation-driven proxy-target-class="true"      transaction-manager="transactionManager" />
<context:annotation-config></context:annotation-config>

persistence_hibernate.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="UP_AB" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <properties>

        <property name="hibernate.hbm2ddl.auto" value="update" />


        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />

        <property name="hibernate.show_sql" value="true" />


    </properties>
</persistence-unit>

这是我使用的依赖项

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.2.8.RELEASE</version>
    </dependency>
    <dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>3.1.1.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>3.6.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
        <version>1.0.1.Final</version>
    </dependency>

tomcat有问题,我应该使用Jboss还是类似的东西?

【问题讨论】:

    标签: java spring struts2 spring-security


    【解决方案1】:

    异常告诉您,您必须将版本属性从 2.0 更改为 1.0。

    【讨论】:

      【解决方案2】:

      Java Persistence Api 2.0 (JPA 2) 是一项 JAVA EE 6 功能。

      Apache Tomcat 7 不是一个 JAVA EE 6 应用服务器,只是一个轻量级的 Servlet(3.0)/JSP(2.2) 容器。

      为了使用(任何)JAVA EE features(CDI、JPA2、EJB3.1、JSF 等...),您需要一个 JAVA EE 应用服务器。

      坚持使用 Apache Tomcat,您可以使用 Apache TomEE,即(猜猜是什么?)a Tomcat JAVA EE compliant

      否则,请使用其他应用服务器之一(Glassfish、Jboss / Wildfly 等...)

      【讨论】:

      • 可以在Tomcat上使用JPA,也可以在Tomcat上使用JSF,在Maven中只需要一两个依赖即可。我在 Tomcat 上有一个使用 Spring、JPA、Primefaces 的应用程序。
      • 我在它的依赖项中看不到它们...您可以通过添加库来调整 tomcat 以使其几乎与 Java ee 兼容,但是为什么要使用 tomcat 呢?顺便说一句,我广泛使用的最后一个 tomcat 是 4,我对它的调整不感兴趣,但感谢添加我省略的信息
      猜你喜欢
      • 2015-12-14
      • 1970-01-01
      • 2016-11-04
      • 2020-03-13
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 2012-01-22
      • 1970-01-01
      相关资源
      最近更新 更多