[SPRING] 오류 : java.lang.NoSuchMethodError : org.objectweb.asm.ClassWriter. <init> (I) V
SPRING오류 : java.lang.NoSuchMethodError : org.objectweb.asm.ClassWriter. (I) V
나는 작은 Spring 애플리케이션을 개발 중이다. 나는 학생 정보의 세부 사항을 데이터베이스에 저장해야한다. 하나의 SimpleFormController를 개발했습니다. 나는 NetBeans + Hibernate 매핑 + Spring을 사용했다. 프로젝트를 배포 할 때 다음 오류가 발생합니다.
내 spring-config-db-applicationContext.xml은 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- Hibernate session factory -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<constructor-arg index="0">
<value>${driverClassName}</value>
</constructor-arg>
<constructor-arg index="1">
<value>${url}</value>
</constructor-arg>
<constructor-arg index="2">
<value>${username}</value>
</constructor-arg>
<constructor-arg index="3">
<value>${password}</value>
</constructor-arg>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<!-- <property name="configLocation">
<value>WEB-INF/classes/hibernate.cfg.xml</value>
</property> -->
<property name="mappingResources" >
<list>
<value>hibernate.cfg.xml</value>
</list>
</property>
<!-- <property name="configurationClass">
<value>org.hibernate.cfg.AnnotationConfiguration</value>
</property> -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${dialect}</prop>
<prop key="hibernate.show_sql">true</prop>
<!--<prop key="hibernate.hbm2ddl.auto">create</prop>-->
</props>
</property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
</beans>
다음과 같은 오류가 발생합니다.
ERROR (org.springframework.web.context.ContextLoader:213) - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in URL [jndi:/localhost/Student/WEB-INF/classes/config/spring-db-applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1395)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:512)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:289)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:286)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:188)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:526)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:730)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:387)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:270)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:511)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1231)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1471)
at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:824)
at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:350)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:196)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V
at net.sf.cglib.core.DebuggingClassWriter.<init>(DebuggingClassWriter.java:47)
at net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter(DefaultGeneratorStrategy.java:30)
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:144)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:116)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:117)
at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43)
at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135)
at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)
at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:302)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:108)
at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:61)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:238)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1304)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:813)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:731)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1454)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1392)
... 48 more
Mar 12, 2010 5:32:28 PM org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
해결법
-
==============================
1.Hibernate (asm-1.5.3.jar)에 필요한 ASM 버전과 Spring에서 필요로하는 ASM 버전 사이에 비 호환성이 있습니다. 하지만 사실, 클래스 패스에 asm-2.2.3.jar (ASM은 AFAIK와 같은 문제를 피하기 위해 spring.jar와 spring-core.jar에 번들되어 있습니다)가 왜 있는지 궁금합니다. HHH-2222 참조.
Hibernate (asm-1.5.3.jar)에 필요한 ASM 버전과 Spring에서 필요로하는 ASM 버전 사이에 비 호환성이 있습니다. 하지만 사실, 클래스 패스에 asm-2.2.3.jar (ASM은 AFAIK와 같은 문제를 피하기 위해 spring.jar와 spring-core.jar에 번들되어 있습니다)가 왜 있는지 궁금합니다. HHH-2222 참조.
-
==============================
2.이 문제에 대한 해결책을 찾았습니다. http://www.hildeberto.com/2008/05/hibernate-and-jersey-conflict-on.html
이 문제에 대한 해결책을 찾았습니다. http://www.hildeberto.com/2008/05/hibernate-and-jersey-conflict-on.html
-
==============================
3.NoSuchMethodError javadoc은 다음과 같이 말합니다 :
NoSuchMethodError javadoc은 다음과 같이 말합니다 :
귀하의 경우,이 오류는 웹 애플리케이션이 org.objectweb.asm. * 클래스를 정의하는 JAR의 잘못된 버전을 사용하고 있음을 나타내는 강력한 표시입니다.
-
==============================
4.이런 종류의 문제를 해결하려면 의존성 POM (Maven을 사용하는 경우)에 두 개의 jar를 추가해야합니다.
이런 종류의 문제를 해결하려면 의존성 POM (Maven을 사용하는 경우)에 두 개의 jar를 추가해야합니다.
<dependency> <groupId>asm</groupId> <artifactId>asm</artifactId> <version>3.3.1</version> </dependency> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>3.1</version> </dependency>
-
==============================
5.다른 라이브러리 버전을 사용하여 시작시 Spring을 초기화 할 때 동일한 오류가 발생했지만 classpath에서이 순서로 내 버전을 얻은 경우 모든 것이 작동합니다 (cp의 다른 라이브러리는 중요하지 않음).
다른 라이브러리 버전을 사용하여 시작시 Spring을 초기화 할 때 동일한 오류가 발생했지만 classpath에서이 순서로 내 버전을 얻은 경우 모든 것이 작동합니다 (cp의 다른 라이브러리는 중요하지 않음).
-
==============================
6.내 API를 다음과 같이 변경합니다. * cglib --- --- ---> cglib-nodep-2.2.jar * cglib-asm --- ---> cglib-asm.jar (즉, 최신 버전)
내 API를 다음과 같이 변경합니다. * cglib --- --- ---> cglib-nodep-2.2.jar * cglib-asm --- ---> cglib-asm.jar (즉, 최신 버전)
-
==============================
7.pom.xml 업데이트
pom.xml 업데이트
<dependency> <groupId>asm</groupId> <artifactId>asm</artifactId> <version>3.1</version> </dependency>
-
==============================
8.서로 다른 버전의 cglib에는 많은 양립성이 없으며이 주제에 대해 검색 할 수있는 많은 조언이 없습니다 (고대 버전의 cglib-nodeb 사용 등). 스프링 (2.5.6)의 고대 버전으로 3 일 동안이 헛소리로 씨름 한 후 나는 발견했다.
서로 다른 버전의 cglib에는 많은 양립성이 없으며이 주제에 대해 검색 할 수있는 많은 조언이 없습니다 (고대 버전의 cglib-nodeb 사용 등). 스프링 (2.5.6)의 고대 버전으로 3 일 동안이 헛소리로 씨름 한 후 나는 발견했다.
-
==============================
9.http-builder를 종속성에 추가 할 때 동일한 오류가 발생했습니다. 내 경우에는 다음과 같이 asm을 제외하면 해결할 수 있습니다.
http-builder를 종속성에 추가 할 때 동일한 오류가 발생했습니다. 내 경우에는 다음과 같이 asm을 제외하면 해결할 수 있습니다.
compile('org.codehaus.groovy.modules.http-builder:http-builder:0.7'){ excludes 'xml-apis' exclude(group:'xerces', module: 'xercesImpl') excludes 'asm' }
from https://stackoverflow.com/questions/2432471/error-java-lang-nosuchmethoderror-org-objectweb-asm-classwriter-initiv by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring Boot - 실행중인 포트를 얻는 방법 (0) | 2018.12.07 |
---|---|
[SPRING] 어떻게 ApplicationContext에서 싱글 톤 스프링 빈을 제거 할 수 있습니까? (0) | 2018.12.07 |
[SPRING] 세터 DI 대. DI 빌더는 봄? (0) | 2018.12.07 |
[SPRING] YamlPropertiesFactoryBean을 사용하여 Spring Framework 4.1을 사용하여 YAML 파일을로드하는 방법? (0) | 2018.12.07 |
[SPRING] 스프링 4 - 정적 리소스를 해결하지 않는 addResourceHandlers (0) | 2018.12.07 |