2013-10-18 4 views
0

OSGi 번들에서 사용자 정의 JCA 구현을 사용하는 데 문제가 있습니다. 우리가 고객에 의해 강제적으로 사용되는 JCA 구현은 클래스 로더 메모리 누출을 초래합니다. 이렇게하면 번들 공간에서의 배포 및 사용을 방지 할 수 있습니다.OSGi의 JCE 보안 공급자

JCA 공급자가 제안하는 솔루션은 JAR을 jre/lib/ext 폴더에 넣는 것이지만 거기에서로드되지는 않습니다. 이것은 부트 스트랩 클래스 로더를 각 번들 클래스 로더의 부모로 갖기 위해 OSGi (Eclipse equinox) 클래스 로더 정책으로 인해 jre/lib/ext 폴더에서로드되는 확장 클래스 로더를 제외하기 때문입니다. 나는. 어떤 번들도 jre/lib/ext 폴더에 아무것도 보이지 않습니다.

보안 숍으로 등록 된 jar 파일을 Eclipse 춘분으로 가져 오는 방법은 없습니까? 모든 번들 또는 특정 번들이 해당 공급자를 볼 수 있도록하려면 한 번만로드하십시오. 이 경우 JCA 라이브러리가 OSGi를 통해 언로드되지 않는다는 사실이 허용 될 수 있습니다.

답변

1

시스템 패키지를 편집하고 JCA-custom.jar에서 패키지를 추가해야합니다.

여러 가지 방법으로 포함시킬 패키지를 정의 할 수 있습니다.

  • 춘분에 대한 프로파일을 작성하고 패키지를 정의하십시오. eclipse.osgi jar에서 각 jdk 버전에 대한 예제를 찾을 수 있습니다. 예를 들어, JavaSE-1.6.profile을 찾고 org.osgi.framework.system.packages 항목을 찾으십시오.
  • OSGi 컨테이너를 시작할 때이를 시스템 변수로 정의 할 수 있습니다. 시스템 변수는 다음과 같습니다. -Dorg.osgi.framework.system.packages = 패키지 이름을 쉼표로 구분하여