Spring3休眠JPA2.0 Maven和value';2.0';错误

Spring3休眠JPA2.0 Maven和value';2.0';错误,spring,hibernate,jpa,maven,Spring,Hibernate,Jpa,Maven,我试图从头开始创建应用程序。在新的maven项目中,我添加了很多依赖项,创建persistence.xml、application.xml和modify web.xml。还介绍了一些实体和控制器。接下来,我尝试使用mvn jetty:run在jetty上运行它,然后我得到了以下异常: org.xml.sax.SAXParseException: cvc-complex-type.3.1: Value '2.0' of attribute 'version' of element 'persist

我试图从头开始创建应用程序。在新的maven项目中,我添加了很多依赖项,创建persistence.xml、application.xml和modify web.xml。还介绍了一些实体和控制器。接下来,我尝试使用mvn jetty:run在jetty上运行它,然后我得到了以下异常:

org.xml.sax.SAXParseException: 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'.
在谷歌搜索之后,我了解到这可能是因为我在类路径中有几个JPA的实现,其中一个可能是1.0。但我无法理解它在哪里,因为我只使用最新版本的hibernate Entry manager,而且明确地说,没有添加任何其他实现。哪里可能有bug?问题可能是因为我添加了许多spring依赖项

<dependencies>
        <!-- 1111111 -->
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <!-- 2222222 -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.1.0.Final</version>
        </dependency>

        <!-- 33333333 -->
        <dependency>
            <groupId>org.hsqldb</groupId>
            <artifactId>hsqldb</artifactId>
            <version>2.0.0</version>
        </dependency>

        <!-- 4444444 -->
        <!--Core utilities used by other modules. Define this if you use Spring Utility APIs (org.springframework.core.*/org.springframework.util.*)-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <!--Expression Language (depends on spring-core) Define this if you use Spring Expression APIs (org.springframework.expression.*)-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <!--Bean Factory and JavaBeans utilities (depends on spring-core) Define this if you use Spring Bean APIs (org.springframework.beans.*)-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <!--Aspect Oriented Programming (AOP) Framework (depends on spring-core, spring-beans) Define this if you use Spring AOP APIs (org.springframework.aop.*)-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <!--Application Context (depends on spring-core, spring-expression, spring-aop, spring-beans) This is the central artifact for Spring's Dependency Injection Container and is generally always Defined-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <!--Various Application Context utilities, including EhCache, JavaMail, Quartz, and Freemarker integration Define this if you need any of these integrations-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <!--Transaction Management Abstraction (depends on spring-core, spring-beans, spring-aop, spring-context) Define this if you use Spring Transactions or DAO Exception Hierarchy(org.springframework.transaction.*/org.springframework.dao.*)-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <!--JDBC Data Access Library (depends on spring-core, spring-beans, spring-context, spring-tx) Define this if you use Spring's JdbcTemplate API (org.springframework.jdbc.*)-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <!--Object-to-Relation-Mapping (ORM) integration with Hibernate, JPA, and iBatis.(depends on spring-core, spring-beans, spring-context, spring-tx) Define this if you need ORM (org.springframework.orm.*)-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <!-- Object-to-XML Mapping (OXM) abstraction and integration with JAXB, JiBX, Castor, XStream, and XML Beans.(depends on spring-core, spring-beans, spring-context) Define this if you need OXM (org.springframework.oxm.*)
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-oxm</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>   -->
        <!--Web application development utilities applicable to both Servlet and Portlet Environments(depends on spring-core, spring-beans, spring-context) Define this if you use Spring MVC, or wish to use Struts, JSF, or another web framework with Spring (org.springframework.web.*)-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <!--Spring MVC for Servlet Environments (depends on spring-core, spring-beans, spring-context, spring-web) Define this if you use Spring MVC with a Servlet Container such as Apache Tomcat (org.springframework.web.servlet.*)-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <!--Spring MVC for Portlet Environments (depends on spring-core, spring-beans, spring-context, spring-web) Define this if you use Spring MVC with a Portlet Container (org.springframework.web.portlet.*)-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc-portlet</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <!--Support for testing Spring applications with tools such as JUnit and TestNGThis artifact is generally always Defined with a 'test' scope for the integration testing framework and unit testing stubs-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${org.springframework.version}</version>
            <scope>test</scope>
        </dependency>


        <!-- 55555555 -->
        <dependency>
            <groupId>commons-pool</groupId>
            <artifactId>commons-pool</artifactId>
            <version>1.6</version>
        </dependency>
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>

    </dependencies>

塔格利布
标准
1.1.2
javax.servlet
jstl
1.2
org.hibernate
休眠实体管理器
4.1.0.1最终版本
org.hsqldb
hsqldb
2.0.0
org.springframework
弹簧芯
${org.springframework.version}
org.springframework
弹簧式
${org.springframework.version}
org.springframework
春豆
${org.springframework.version}
org.springframework
春季aop
${org.springframework.version}
org.springframework
spring上下文
${org.springframework.version}
org.springframework
spring上下文支持
${org.springframework.version}
org.springframework
德克萨斯州春季
${org.springframework.version}
org.springframework
SpringJDBC
${org.springframework.version}
org.springframework
春季甲虫
${org.springframework.version}
org.springframework
弹簧网
${org.springframework.version}
org.springframework
SpringWebMVC
${org.springframework.version}
org.springframework
SpringWebMVCPortlet
${org.springframework.version}
org.springframework
弹簧试验
${org.springframework.version}
测试
共用池
共用池
1.6
公共dbcp
公共dbcp
1.4
还有我的persistence.xml

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

    <persistence-unit name="units" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
            <property name="javax.persistence.jdbc.user" value="sa"/>
            <property name="javax.persistence.jdbc.password" value=""/>
            <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:mem:."/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
            <property name="hibernate.max_fetch_depth" value="3"/>
            <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
        </properties>
    </persistence-unit>

</persistence>

org.hibernate.ejb.HibernatePersistence
${org.springframework.version}=3.0.0.RELEASE

如果需要其他东西,我可以提供


p、 很抱歉用英语告诉你,你的POM、它的依赖项和
persistence.xml
文件看起来没问题。我看不出为什么JPA1.0在某种程度上优先于JPA2.0,至少在应用程序方面是这样。因此,您应该检查另一面,即您部署应用程序的Jetty实例。确保其lib(提供给应用程序类路径)不包含jpa1.0(其实现,类似于旧的Hibernate版本),因为jpa1.0具有优先权。除了类路径中的旧JPA实现之外,我真的看不到任何其他原因


或者,只需下载香草Tomcat,解包并按原样部署应用程序(WAR文件)。这将确保应用程序正常,这是容器的问题。

基于此,我假设spring framework版本不适合persistence.xml,反之亦然。但是我不知道从哪个persistence.xml文件生成了错误消息。也许您可以运行
mvn dependency:tree
,看看它是否表示引用了旧的JPA库。您可以用this更新这个问题是的,可能是真的,spring vesrion与persistent.xml冲突。在我将版本更改为3.1.1.0版本后,所有的工作似乎都很好。多谢各位