Hibernate groovy+;jpa&x2B;maven=javax/xml/transform/Source的加载程序约束冲突

Hibernate groovy+;jpa&x2B;maven=javax/xml/transform/Source的加载程序约束冲突,hibernate,maven-2,jpa,groovy,Hibernate,Maven 2,Jpa,Groovy,如果从groovy脚本创建JPA EntityManager,则会出现以下错误: java.lang.LinkageError: loader constraint violation: loader (instance of <bootloader>) previously initiated loading for a different type with name "javax/xml/transform/Source" at javax.xml.validation.Sch

如果从groovy脚本创建JPA EntityManager,则会出现以下错误:

java.lang.LinkageError: loader constraint violation: loader (instance of <bootloader>) previously initiated loading for a different type with name "javax/xml/transform/Source"
at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:594)
at org.hibernate.ejb.packaging.PersistenceXmlLoader.loadURL(PersistenceXmlLoader.java:89)
at org.hibernate.ejb.packaging.PersistenceXmlLoader.deploy(PersistenceXmlLoader.java:168)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:310)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:55)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
...
java.lang.LinkageError:加载程序约束冲突:加载程序(的实例)以前为名为“javax/xml/transform/Source”的不同类型启动加载
位于javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:594)
位于org.hibernate.ejb.packaging.persistencexmloader.loadURL(persistencexmloader.java:89)
位于org.hibernate.ejb.packaging.persistencexmloader.deploy(persistencexmloader.java:168)
位于org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:310)
位于org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:55)
位于javax.persistence.persistence.createEntityManagerFactory(persistence.java:48)
...
如果我从java类中的主方法创建EntityManager,它将正常工作

我使用mave,pom中的依赖项如下所示:

<dependencies>

    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>1.7.6</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.1</version>
        <scope>test</scope>
    </dependency>

    <dependency>
           <groupId>org.hibernate</groupId>
           <artifactId>hibernate-core</artifactId>
           <version>3.5.0-Final</version>
    </dependency>
    <dependency>
           <groupId>org.hibernate</groupId>
           <artifactId>hibernate-entitymanager</artifactId>
          <version>3.5.0-Final</version>
    </dependency>
    <dependency>
          <groupId>org.hibernate</groupId>
          <artifactId>hibernate-annotations</artifactId>
          <version>3.5.0-Final</version>
    </dependency>
    <dependency>
         <groupId>org.hibernate.javax.persistence</groupId>
         <artifactId>hibernate-jpa-2.0-api</artifactId>
         <version>1.0.0.Final</version>
    </dependency>

    <dependency>
        <groupId>postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>8.3-606.jdbc3</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.5.8</version>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>${commons-logging.version}</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
        <!--<scope>runtime</scope>-->
        <exclusions>
            <exclusion>
                <groupId>com.sun.jdmk</groupId>
                <artifactId>jmxtools</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.sun.jmx</groupId>
                <artifactId>jmxri</artifactId>
            </exclusion>
            <exclusion>
                <groupId>javax.mail</groupId>
                <artifactId>mail</artifactId>
            </exclusion>
            <exclusion>
                <groupId>javax.jms</groupId>
                <artifactId>jms</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.6.1</version>
    </dependency>

</dependencies>

org.codehaus.groovy
groovy all
1.7.6
朱尼特
朱尼特
4.8.1
测试
org.hibernate
冬眠核心
3.5.0-最终版本
org.hibernate
休眠实体管理器
3.5.0-最终版本
org.hibernate
休眠注释
3.5.0-最终版本
org.hibernate.javax.persistence
hibernate-jpa-2.0-api
1.0.0.1决赛
postgresql
postgresql
8.3-606.jdbc3
org.slf4j
slf4j简单
1.5.8
公用记录
公用记录
${commons logging.version}
编译
log4j
log4j
${log4j.version}
com.sun.jdmk
jmxtools
com.sun.jmx
jmxri
javax.mail
邮件
javax.jms
jms
org.slf4j
slf4j-log4j12
1.6.1
有人能告诉我我做错了什么,我该如何解决


Medrod

javax.xml.transform.Source现在是JDK 6的一部分。似乎某些依赖项(可能是Hibernate)间接依赖于XMLAPIsJAR文件(实际上还包含java.xml.*类)。您必须找到该依赖项并排除XMLAPI