2014-01-16 3 views
1

Tomcat이 내장 된 Eclipse virgo 서버를 사용하고 있습니다. 내가 만든 사용자 정의 세션 관리자를 사용하고 싶습니다. osgi 번들에 있습니다. 필자는 osgi 번들을 fragment 호스트 인 catalina 번들과 함께 조각으로 구성했습니다. 또한 내 context.xml에서는 정규화 된 클래스 이름을 지정하여 세션 관리자를 구성했습니다.virgo tomcat에서 사용자 정의 세션 관리자를 구성하려고 할 때 ClassNotFoundException이 발생합니다.

문제는 시작시 세션 관리자에 ClassNotFoundException이 발생한다는 것입니다.

나는 lib 폴더에 내 항아리를 추가하고 내 항아리 시작시로드 만들기 위해 config.ini 파일을 수정 시도했지만 그게 내가 내 클래스가 있는지 확인하기 위해해야 ​​할 일이 시나리오에서는

도움이되지 않았다 시작할 때 발견되었습니다.

답변

1

다음과 같은 특성을

구성에서
osgi.debug=configuration/equinox-debug.properties 

/equinox-debug.properties 추가 한 다음 속성을 추가, config.ini 파일/구성에서

, 클래스 로더 디버깅 도움이 활성화

org.eclipse.osgi/debug=true 
org.eclipse.osgi/debug/loader=true 

이제 컨테이너를 다시 시작하면 클래스를로드하려는 BundleClassLoader가 인쇄됩니다. 내 번들을이 클래스를로드하고있는 번들의 일부분으로 추가하기를 원했기 때문에 어떤 번들이 클래스를로드하는지 알게되면 간단히 그것을 프래그먼트 호스트로 사용했습니다.

2

blog에 설명 된대로 Virgo Shell Commands을 사용하여 클래스로드 문제를 분석 할 수 있습니다. 예를 들어 클래스를로드 할 수있는 모든 번들을 나열 할 수 있습니다. 처녀 자리 자주 묻는 질문을 참조하십시오 필요에 따라 타사 번들에 가져 오기를 추가하는 방법.