발생한 문제 :

2011. 3. 18 오전 11:06:54 org.springframework.context.support.AbstractApplicationContext prepareRefresh
정보: Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@2626d4f1: startup date [Fri Mar 18 11:06:54 KST 2011]; root of context hierarchy
Exception in thread "main" java.lang.IllegalStateException: CGLIB is required to process @Configuration classes. Either add CGLIB to the classpath or remove the following @Configuration bean definitions: [daoFactory]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:229)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:160)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:663)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:602)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:407)
at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:65)
at springbook.user.dao.DaoTest.main(DaoTest.java:12)

찾아봤다.
찾은 페이지 : http://www.roseindia.net/spring/spring3/spring-cglib.shtml 
스프링 3.0 배포판에는 CGLIB 가 포함되어 있지 않다고 한다. 그래서 CGLIB를 추가한다.
관련 페이지 : http://cglib.sourceforge.net/
Download에서 cglib를 추가하면 된다.

추가해야할 항목 :
- cglib-2.1_3.jar
- cglib-nodep-2.1_3.jar

를 받으면 된다고 하더니 안되더이다...

2011. 3. 18 오후 12:15:46 org.springframework.context.support.AbstractApplicationContext prepareRefresh
정보: Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@2626d4f1: startup date [Fri Mar 18 12:15:46 KST 2011]; root of context hierarchy
Exception in thread "main" java.lang.IllegalStateException: Cannot load configuration class: springbook.user.dao.DaoFactory
at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:246)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:160)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:663)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:602)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:407)
at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:65)
at springbook.user.dao.DaoTest.main(DaoTest.java:12)
Caused by: java.lang.NoClassDefFoundError: org/objectweb/asm/Type
at net.sf.cglib.core.TypeUtils.parseType(TypeUtils.java:180)
at net.sf.cglib.core.KeyFactory.<clinit>(KeyFactory.java:66)
at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
at org.springframework.context.annotation.ConfigurationClassEnhancer.newEnhancer(ConfigurationClassEnhancer.java:101)
at org.springframework.context.annotation.ConfigurationClassEnhancer.enhance(ConfigurationClassEnhancer.java:89)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:238)
... 6 more
Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type <-- 요놈 계속 발생....
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 12 more

그래서 현재 참고 하고 있는 교재의 라이브러리르 추가하니 한번에 된다. 뭐지?

 를 추가하니 해결...되었다.

2011. 3. 18 오후 12:17:10 org.springframework.context.support.AbstractApplicationContext prepareRefresh
정보: Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@2626d4f1: startup date [Fri Mar 18 12:17:10 KST 2011]; root of context hierarchy
2011. 3. 18 오후 12:17:10 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
정보: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@6db3f829: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,daoFactory,userDao,connectionMaker]; root of factory hierarchy
honeymon2 등록성공
honeymon2
김지헌
solo
honeymon2 조회 성공

뭐지? 공통쪽에서 사용하는 CGLIB와 스프링에서 사용하는 CGLIB가 서로 다른 것일까?
  1. @PatrickJeon 2011.09.29 12:46 신고

    도움 감사드립니다. 저도 이걸로 해결이 되었네요....

    그냥 그러려니 하고 일단 속도를 내기 위해 진행하옵니다...ㅋ

    • STS 에서 제공하는 템플릿 프로젝트를 이용하시면
      maven 을 이용해서 손쉽게 라이브러리를 추가할 수 있습니다. ^^

      pom.xml 에다가
      cgilib.jar 관련한 항목만 첨가하면 메이븐이 알아서 라이브러리를
      추가해주죠. ^^ 프로젝트 들어와서 메이븐으로 스프링 프레임워크를 관리하니 편하더라구요.

  2. 천방애비 2011.11.14 01:10 신고

    선 댓글 후 재도전 해보겠습니다. 제가 보는 책이 왠지 허니몬님이 보는책과 같다는 느낌이.. ㅎㅎ

  3. 이형규 2012.01.17 11:41 신고

    안녕하세요
    저도 같은 오류가 나서 위와 같은 방법으로 라이브러리 3개를 추가 했는데요
    오류가 계속 발생하네요

    Cannot load configuration class:

    혹시 알 수 있을까요

    • 오류 메시지랑 application context가 있어야 확인할 수 있을 것 같은데요. ^^; 혹시 사용하시는 스프링 버전이 어떻게 되시나요?

  4. 지나가다 2012.05.16 21:18 신고

    정말 감사합니다. 저도 이글 보고 해결하였습니다. 정말 이런 거 많으면 힘들어요!!

  5. 샤인 2012.11.16 16:01 신고

    혹시 토비의 SPRING들 보시나요..ㅋㅋ

  6. 이주희 2013.05.23 15:34 신고

    덕분에 저두 해결했네요~~^^

  7. 최흥길 2014.05.15 10:37 신고

    저도 계속
    java.lang.ClassNotFoundException: org.objectweb.asm.Type
    이 에러때문에 삽질하다가 여기 첨부해주신
    com.springsource.net.sf.cglib-2.1.3.jar 로 바꾸니까 바로 되네요;;;;

    http://mvnrepository.com 에서 다운받은걸로 해봐도 계속 안됬는데...;;;
    뭐가 다른걸까요... ㅡ.ㅡ;;;

    혹시 아시는분있으면 댓글좀 부탁드립니다...

  8. 최흥길 2014.05.15 10:44 신고

    https://github.com/cglib/cglib 가면

    readme 에
    cglib-#.#_#.jar binary distribution, CGLIB classes only,
    it must be used to extend cglib classes dependant on ASM API

    cglib-nodep-#.#_#.jar binary distribution, CGLIB and renamed ASM classes,
    not extendable

    이런 노티가 있네요;
    어제는 피곤했나봅니다...쿨럭;;;

  9. 스프링 프레임워크 3.2.x 이상으로 올리시게 되면 더이상 CGLIB는 필요하지 않으실 겁니다. ^^;

    http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/migration-3.2.html#migration-3.2-inline-cglibs

  10. LiCH 2015.04.07 17:50 신고

    똑같은 책보면서 똑같은 문제로 고민하다, 여기서 해결하고 갑니다.
    감사합니다. ^^

+ Recent posts