2011-04-21 2 views
3

여러 웹/응용 프로그램이 있습니다. 이러한 응용 프로그램은 몇 가지 공통 라이브러리를 사용하며 해당 라이브러리의 클래스 인스턴스를 공유해야합니다. 그러나 응용 프로그램은 독립적으로 배포되므로 모든 응용 프로그램을 EAR로 패키징하는 것은 허용되지 않습니다. 문제는 각 응용 프로그램이 별도의 클래스 로더를 사용한다고 가정합니다. AS가 일련의 응용 프로그램에 대해 단일 클래스 로더를 사용하도록하려면 어떻게해야합니까?글래스 피쉬 (Glassfish) : 여러 응용 프로그램에서 서버가 단일 클래스 로더를 사용하도록 만드는 방법은 무엇입니까?

다른 응용 프로그램은 다른 라이브러리에 따라 다르므로 도메인의 모든 응용 프로그램에 대해 라이브러리를 공유하지 않지만 정확한 응용 프로그램에만 필요합니다.

공통 항아리를 % 도메인 %/lib에 배치했을 때 - 모두 작동합니다. 하지만 그 항아리는 도메인의 모든 응용 프로그램간에 공유됩니다. 내가 % 도메인 %/lib 디렉토리에 공통적으로 단지를 배치했을 때 은/--libraries을을 applibs 지정된 속성을 나는 예외

여기
java.lang.ClassCastException: a.FirstDao cannot be cast to a.FirstDao 

http://download.oracle.com/docs/cd/E19879-01/820-4336/6nfqd2b1t/index.html있어 배포에 내가 읽은 :

하는 경우 여러 응용 프로그램 또는 모듈 은 동일한 라이브러리를 참조하며 해당 라이브러리의 클래스는 자동으로 이 공유됩니다. 이렇게하면 메모리가 줄어들어 풋 프린트로 고정되어 정보를 공유 할 수 있습니다.

클래스가 캐스팅 될 수 있어야한다는 의미입니까?

답변

0

domain/lib 디렉토리 사용을 권장합니다. 해당 도메인에서 실행되는 모든 응용 프로그램에서 라이브러리를 사용할 수있게 만들지 만 다른 응용 프로그램이 해당 라이브러리를 사용하지 않는 경우 정말 중요합니까?

이러한 노출을 제거하려는 경우 라이브러리 사용을 해당 응용 프로그램에만 격리 시키려면 개별 EAR로 응용 프로그램 그룹을 제공하는 것이 좋습니다.

관련 문제