2016-03-25 4 views
1

Ich entwickle eine Web-Service-Anwendung, aber sessionFactory Bean wird nicht erstellt, da der Fehler unten liegt. Ich kann keine Duplikat- oder Konfliktversion von dom4j jar sehen. Ich habe mehrmals versucht, Server und Projekt in Eclipse zu referenzieren/zu säubern.Verursacht von: java.lang.ClassNotFoundException: org.dom4j.io.STAXEventReader

Hibernate version 5.1.0.Final

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/spring-database.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/dom4j/io/STAXEventReader 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014) 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545) 
... 51 more 


Caused by: java.lang.NoClassDefFoundError: org/dom4j/io/STAXEventReader 
     at org.hibernate.boot.spi.XmlMappingBinderAccess.<init>(XmlMappingBinderAccess.java:43) 
     at org.hibernate.boot.MetadataSources.<init>(MetadataSources.java:87) 
     at org.hibernate.cfg.Configuration.<init>(Configuration.java:124) 
     at org.springframework.orm.hibernate5.LocalSessionFactoryBuilder.<init>(LocalSessionFactoryBuilder.java:110) 
     at org.springframework.orm.hibernate5.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:309) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) 
... 61 more 


Caused by: java.lang.ClassNotFoundException: org.dom4j.io.STAXEventReader from [Module "deployment.web-services.war:main" from Service Module Loader] 
     at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:455) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:404) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:385) 
     at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:130) 
... 68 more 

Feder security.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 
xmlns:tx="http://www.springframework.org/schema/tx" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 

<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource"/> 
    <property name="packagesToScan"> 
     <list> 
      <value>com.foo.bar.entity</value> 
     </list> 
    </property> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop> 
      <prop key="current_session_context_class">thread</prop> 
      <prop key="hibernate.show_sql">true</prop> 
      <prop key="hibernate.validator.apply_to_ddl">true</prop> 
      <prop key="hibernate.validator.autoregister_listeners">false</prop> 
      <prop key="hibernate.hbm2ddl.auto">create</prop> 
     </props> 
    </property> 
</bean> 
<!-- Transcation Manager --> 
<tx:annotation-driven transaction-manager="transactionManager" /> 

<bean id="transactionManager" 
    class="org.springframework.orm.hibernate5.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory" /> 
</bean> 

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName" value="java:jboss/datasources/myDS" /> 
</bean> 

Maven Abhängigkeit: Baum Befehl geben unten Ergebnis: -

--- maven-dependency-plugin:2.8:tree (default-cli) @ web-services --- 
[INFO] com.car.buk:web-services:war:1.0 
[INFO] +- com.car.buk:user-management:jar:1.0:compile 
[INFO] +- com.car.buk:entity:jar:1.0:compile 
[INFO] +- org.slf4j:slf4j-api:jar:1.7.18:compile 
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.5.3:compile 
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.5.0:compile 
[INFO] | \- com.fasterxml.jackson.core:jackson-core:jar:2.5.3:compile 
[INFO] +- org.hibernate:hibernate-core:jar:5.1.0.Final:compile 
[INFO] | +- org.jboss.logging:jboss-logging:jar:3.3.0.Final:compile 
[INFO] | +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile 
[INFO] | +- org.javassist:javassist:jar:3.20.0-GA:compile 
[INFO] | +- antlr:antlr:jar:2.7.7:compile 
[INFO] | +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1:compile 
[INFO] | +- org.jboss:jandex:jar:2.0.0.Final:compile 
[INFO] | +- com.fasterxml:classmate:jar:1.3.0:compile 
[INFO] | +- dom4j:dom4j:jar:1.6.1:compile 
[INFO] | | \- xml-apis:xml-apis:jar:1.0.b2:compile 
[INFO] | \- org.hibernate.common:hibernate-commons-annotations:jar:5.0.1.Final:compile 
[INFO] +- org.hibernate:hibernate-entitymanager:jar:5.1.0.Final:compile 
[INFO] +- org.springframework:spring-core:jar:4.2.5.RELEASE:compile 
[INFO] +- org.springframework:spring-beans:jar:4.2.5.RELEASE:compile 
[INFO] +- org.springframework:spring-jdbc:jar:4.2.5.RELEASE:compile 
[INFO] +- org.springframework:spring-orm:jar:4.2.5.RELEASE:compile 
[INFO] +- org.springframework:spring-tx:jar:4.2.5.RELEASE:compile 
[INFO] +- org.springframework:spring-test:jar:4.2.5.RELEASE:compile 
[INFO] +- org.springframework:spring-context:jar:4.2.5.RELEASE:compile 
[INFO] | +- org.springframework:spring-aop:jar:4.2.5.RELEASE:compile 
[INFO] | \- org.springframework:spring-expression:jar:4.2.5.RELEASE:compile 
[INFO] +- org.springframework:spring-web:jar:4.2.5.RELEASE:compile 
[INFO] +- org.springframework:spring-webmvc:jar:4.2.5.RELEASE:compile 
[INFO] +- org.springframework.security:spring-security-web:jar:4.0.4.RELEASE:compile 
[INFO] | \- aopalliance:aopalliance:jar:1.0:compile 
[INFO] +- org.springframework.security:spring-security-config:jar:4.0.4.RELEASE:compile 
[INFO] +- org.springframework.security:spring-security-acl:jar:4.0.4.RELEASE:compile 
[INFO] +- org.springframework.security:spring-security-core:jar:4.0.4.RELEASE:compile 
[INFO] +- org.springframework.security.oauth:spring-security-oauth2:jar:2.0.9.RELEASE:compile 
[INFO] | +- commons-codec:commons-codec:jar:1.9:compile 
[INFO] | \- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile 
[INFO] |  \- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile 
[INFO] \- junit:junit:jar:3.8.1:test 

ich total stecken bin. Weißt jemand von euch, wie man das löst?

+4

in der Fehlermeldung, die Sie haben 'verursacht durch: java.lang.NoClassDefFoundError: org/dom4j/io/STAXEventReader ' vielleicht haben Sie die falsche Version des Jar 'dom4j': Versuchen Sie, die Klasse im Jar zu suchen: Wenn Sie es nicht finden, suchen Sie eine andere Version von 'dom4j', die die Klasse' STAXEventReader' enthält. Ich habe die Version 1.6 verwendet, die die Klasse enthält, also probiere sie – Hohenheim

+0

dom4j: dom4j: jar: 1.6.1 wird jar verwendet und es wird von hibernate core 5.1.0.final hinzugefügt. Ich habe überprüft, dass die Klasse auch in dieser Version vorhanden ist. sollte ich dieses Glas ausschließen und 1.6 ?? @Hohenheim – Manish

+0

Probieren Sie es aus, denn in meinem Fall hat es funktioniert und hoffe, dass auch für Sie – Hohenheim

Antwort

6

Dank Hohenheim, um das Problem der Version hervorzuheben.

Hibernate core 5.1.0.Final include dom4j-1.6.1 jar which throws this error. To fix this, need to exclude dom4j-1.6.1 from hibernate-core and include dom4j-1.6 in your pom.

Ich bin nicht in der Lage, den genauen Grund zu finden, warum dies geschieht.

So habe ich dom4j von Pom in Ruhezustand ausgeschlossen.

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-core</artifactId> 
    <version>5.1.0.Final</version> 
    <exclusions> 
     <exclusion> 
      <artifactId>jta</artifactId> 
      <groupId>javax.transaction</groupId> 
     </exclusion> 
     <!-- Exclude SLF4j to avoid version conflicts (we have 1.6.6, this drags 
       in 1.6.1) --> 
     <exclusion> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
     </exclusion> 
     <!-- Exclude dom4j to avoid version conflicts (we have 1.6, this drags 
       in 1.6.1) --> 
     <exclusion> 
      <groupId>dom4j</groupId> 
      <artifactId>dom4j</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 
0

Ich benutzte Manager Ivy Abhängigkeit und in meinem Fall habe ich dom4j aus Kern Abhängigkeit entfernen und fügen Sie wieder die letzte Version 1.6.1 und dass für mich gearbeitet.

<dependency org="org.hibernate" name="hibernate-core" rev="5.2.8.Final"> 
    <exclude org="dom4j"/> 
</dependency> 

<dependency org="dom4j" name="dom4j" rev="1.6.1"/> 
0

In meinem Fall mit dem gleichen Problem zu lösen ich es diese Versionen in pom.xml Einstellung:

  • Spring version 4.3.7.RELEASE
  • Hibernate version 4.1.9.Final

I did't<exclusions> überhaupt verwenden und ich fügte dom4j mit Version 1.4.

<dependency> 
    <groupId>dom4j</groupId> 
    <artifactId>dom4j</artifactId> 
    <version>1.4</version> 
</dependency> 
0

In meinem Szenario, demselben Stacktrace, folgte ich den Antworten ohne Erfolg. Die Lösung war, dom4j aus .m2/repository zu entfernen, weil das jar anscheinend beschädigt war und nach dem erneuten Download das Problem behoben wurde.

Verwandte Themen