Whiteship's Note

@Configurable 왜이리 안 되지;

Spring/Chapter 6 : 2007.11.23 16:43


http://forum.springframework.org/showthread.php?t=43690
위 링크에 있는 것과 똑같은 현상이 벌어지고 있습니다.

1. @Confiurable 애노테이션을 도메인 객체위에 붙이고...
2. XML 설정에서 해당 도메인 객체를 등록하고 이 때 scope을 prototype으로...
3. <context:spring-configured /> 추가해주고.. (@Configurable 붙은 녀석이 애플리케이션에서 생성될 때 스프링이 관리하도록...)
4. <context:load-time-weaver/> 추가해주고.. (LTW 사용해야 3번일을 할 수 있으니까..)
끝..

이렇게 하면
    @Test
    public void testDI() throws Exception {
        Member member = new Member();
        assertNotNull(member.getRepository());
    }

이 테스트가 통과해야 하는데..
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.context.weaving.AspectJWeavingEnabler#0': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loadTimeWeaver': Initialization of bean failed; nested exception is java.lang.IllegalStateException: ClassLoader [sun.misc.Launcher$AppClassLoader] does NOT provide an 'addTransformer(ClassFileTransformer)' method. Specify a custom LoadTimeWeaver or start your Java virtual machine with Spring's agent: -javaagent:spring-agent.jar

-javaagent:spring-agent.jar 옵션을 추가해서 실행시키라는 에러가 발생합니다.

그래서 이클립스의 Run -> Open Reun Dialog 클리갛고, JUnit 에서 우클릭 한다음 new로 새로 하나 만들고 아규먼트에 인자를 다음과 같이 줬습니다.

-javaagent:sd:\eclipse\workspace\spring2.5\lib\spring-agent.jar

하지만 에러 메시지는 동일합니다. OTL...
레퍼런스에서 Table 6.1. DefaultContextLoadTimeWeaver  LoadTimeWeavers 표를 보고 위버 설정 파일을 다음과 같이 수정했습니다.

<context:load-time-weaver weaver-class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/>

자... 그랬더니 이번에는 레퍼런스를 보라는 에러가...ㄷㄷㄷ

java.lang.IllegalStateException: Must start with Java agent to use InstrumentationLoadTimeWeaver. See Spring documentation.



top




: 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : 10 : ··· : 30 :