2011-11-23 4 views
1

Spring을 사용하여 서버 기반 구성 요소를 구성했습니다. 나는 또한 서버에 연결하는 데 Spring을 사용하는 클라이언트 인터페이스를 가지고있다. Eclipse RCP 애플리케이션에서 서버에 연결해야한다.Eclipse 3.x AnnotationConfigApplicationContext Eclipse RCP에서 사용하기

필요한 스프링 라이브러리를 대상 플랫폼에 포함 시켰습니다.

그러나 스프링 컨텍스트를 만들려고하면 "net.sf.cglib.proxy.Enhancer"에서 ClassNotFoundException이 발생하여 IllegalStateException이 throw됩니다.

플러그인에서 수동으로 cglib 2.2를 래핑하고 대상 플랫폼에 추가했지만 여전히 동일한 오류가 발생합니다.

스프링 모듈이 CGLib에 액세스 할 수 있도록하려면 어떻게해야합니까?

+0

BundleClasspath에서 실제 응용 프로그램 번들 안에 cglib를 래핑 해 보았습니까? 즉. 별개의 묶음이 아닙니다. 그리고 (Embed-Dependency)를 사용하여 그것을 임베드합니다. 또는 (Private-Import를 사용하여) 모든 cglib 라이브러리를 가져 와서 패키지가 번들/jar에 있는지 확인할 수 있습니다. –

+0

또한 여러 번들이있는 경우 cglib가 필요한 실제 번들이 해당 번들을 가져 오는지 확인하십시오. 나는 최근에 Hibernate 번들과 데이터베이스 드라이버 (http://stackoverflow.com/questions/8013205/osgi-with-hibernate-no-suitable-driver-found 참조)로이 실수를했다. 나는 당신이 Java의 표준 클래스 로딩에 익숙해지면 혼란 스러울 것이라고 생각한다. –

답변

0

스프링과 필요한 모든 의존성을 포함하는 별도의 번들을 생성하여이를 해결했습니다. 그런 다음 내 클라이언트 클래스와 스프링 번들 사이에 Eclipse 버디 클래스로드를 추가하여 구성 클래스를로드 할 수있게해야했습니다.

더 좋은 방법이 있습니까?

관련 문제