Whiteship's Note

'스프링 최신 버전'에 해당되는 글 1건

  1. 2009.07.15 모르겠네.. @_@ (2)

모르겠네.. @_@

모하니?/Coding : 2009.07.15 19:07


도메인 객체에 @Configurable을 사용해서 DAO 객체를 주입하는데 하이버네이트 SessionFactory를 만들다가 에러가 납니다... 허헐.. 이것 참..

@Configurable은 그대로 두고, 도메인 객체에 주입했던 DAO들을 주석처리하면 SessionFactory도 잘 만들어 주고 그 뒤엔 나머지 모든 빈들도 다 잘 만들어지고 테스트도 잘 돌아갑니다.

하지만...도메인 객체에 DAO만 주입했다... 하면... 아래처럼 결국은 DAO를 주입한 클래스의 인스턴스를 만들지 못해서 SessionFactory를 만들지 못하고 그로 인해 ApplicationContext도 제대로 만들지 못해서 아무런 테스트가 돌아가질 않습니다.

Caused by: org.hibernate.InstantiationException: could not instantiate test objectkoma.domain.User

이것이 핵심으로 보이는데. 왜 그런지 잘 모르겠네요. 희한한건 스프링 3.0.0.M3을 쓰면 아무 문제 없이 잘 돌아간다는 겁니다. 톱님께서 제공하시는 최신 버전의 스프링으로 버전을 바꾸면 이런 현상이 벌어진다는 겁니다.

몇 가지 추측을 해볼 수 있는데...

1. 스프링 최신버전과 하이버네이트 버전이 맞지 않음.

2. 스프링 최신버전과 AspectJ 버전이 맞지 않음.

3. 최신 스프링 코드에 문제가 있음.

다행스러운건... 정식배포버전은 스프링 3.0.0.M3에서는 무사히 잘 돌아간다는 겁니다. 현재 스프링 의존성 매트릭스를 참조해서 하이버와 Aspectj 버전을 맞춰봤지만.. 여전히 아래와 같은 에러 로그가 떨어집니다.

더보기


또하나는 위버와의 궁합이 안맞을지 모른다는 생각인데...

3.0 M 버전들은 배포할 때 with-doc 만 배포하면서 그 안에 weaver들을 포함시켜주지 않았습니다. with-dependencies를 보면 dist/weaver 폴더에 들어있는데 말이죠.

최신 버전에서 위버와 뭔가 궁합이 안맞을 수 있겠다는 생각도 해봤었지만, 최신 위버를 찾을 수가 없어서 뒤로 재쳐두고 있었는데..

문제 실마리가 안 보이네요. @_@
top