[SPRING] 원인 : java.lang.ClassNotFoundException : org.dom4j.io.STAXEventReader
SPRING원인 : java.lang.ClassNotFoundException : org.dom4j.io.STAXEventReader
웹 서비스 응용 프로그램을 개발 중이지만 아래 오류 때문에 sessionFactory bean이 작성되지 않습니다. dom4j jar의 중복 버전이나 충돌 버전을 볼 수 없습니다. 나는 여러 번 시도했다 referesh / 일식에 서버 및 프로젝트 청소.
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
Spring-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 의존성 : 트리 명령은 아래 결과를 준다 : -
--- 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
나는 완전히 붙어있다. 너희들 중 어떤 사람이 이것을 해결하는 방법을 알고 있습니까?
해결법
-
==============================
1.Hohenheim에게 버전 문제를 지적 해 주셔서 감사합니다.
Hohenheim에게 버전 문제를 지적 해 주셔서 감사합니다.
나는 이것이 일어나고있는 정확한 이유를 찾을 수 없다.
이것은 hibernate 종속성에서 pom으로부터 dom4j를 제외시키는 방법입니다.
<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>
-
==============================
2.Ivy 종속성 관리자를 사용하고 제 경우에는 코어 종속성에서 dom4j를 제거하고 마지막 버전 1.6.1을 추가하면 저에게 효과적입니다.
Ivy 종속성 관리자를 사용하고 제 경우에는 코어 종속성에서 dom4j를 제거하고 마지막 버전 1.6.1을 추가하면 저에게 효과적입니다.
<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"/>
-
==============================
3.동일한 문제가있는 제 경우에는이 버전을 pom.xml에서 설정하여 해결합니다.
동일한 문제가있는 제 경우에는이 버전을 pom.xml에서 설정하여 해결합니다.
나는
을 전혀 사용하지 않았고 dom4j에 1.4 버전을 추가했습니다. <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.4</version> </dependency>
-
==============================
4.나의 시나리오에서, 같은 stacktrace, 나는 성공없이 해답을 따랐다. 분명히 항아리가 손상 되었기 때문에 솔루션은 .m2 / 저장소에서 dom4j를 제거하는 것이었고 다시 다운로드 한 후에 문제가 해결되었습니다.
나의 시나리오에서, 같은 stacktrace, 나는 성공없이 해답을 따랐다. 분명히 항아리가 손상 되었기 때문에 솔루션은 .m2 / 저장소에서 dom4j를 제거하는 것이었고 다시 다운로드 한 후에 문제가 해결되었습니다.
-
==============================
5.예외를 적용 할 필요는 없습니다. 로컬 저장소를 삭제 한 다음 Alt + F5 + 강제 업데이트를 수행하여 라이브러리를 다운로드하면됩니다.
예외를 적용 할 필요는 없습니다. 로컬 저장소를 삭제 한 다음 Alt + F5 + 강제 업데이트를 수행하여 라이브러리를 다운로드하면됩니다.
이렇게하면 나를 위해 문제가 해결되었습니다.
from https://stackoverflow.com/questions/36222306/caused-by-java-lang-classnotfoundexception-org-dom4j-io-staxeventreader by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 작업을 성공적으로 끝내려면 .tasklet () / .chunk ()를 어떻게 사용해야합니까? (0) | 2019.01.23 |
---|---|
[SPRING] 엔티티와 저장소가 동일한 여러 데이터 소스 (0) | 2019.01.23 |
[SPRING] 스프링 통합에서 동적으로 ftp 어댑터를 만드는 방법은 무엇입니까? (0) | 2019.01.23 |
[SPRING] EnableGlobalMethodSecurity 주석 사용 중지 (0) | 2019.01.23 |
[SPRING] Spring @Scheduled 작업이 두 번 실행됩니다. (0) | 2019.01.23 |