2017-03-24 8 views
1

클래스 파일 DTDScanner, DocumentScanner가 두 개의 jar 파일 com.ibm.ws.webservices.thinclient_8.5.0.jar에서로드 중입니다. WEB-INF/lib를 통해 응용 프로그램에서 제공) 및 com.ibm.ws.xlxp.1.5.3_1.0.16.jar (Liberty profile liberty 제공). 이 클래스 파일은 두 개의 다른 클래스 로더에 의해로드되기 때문에 java.lang.LinkageError : loader constraint violation을가집니다.java.util.concurrent.ExecutionException : java.lang.LinkageError : 로더 제약 조건 위반 : 메서드를 확인할 때

자유 버전 : - : java.lang.LinkageError : 로더 제약 조건 위반 : 17.0.0.1 자유 (17.0.0.1-cl170120170227-0220) 여기

오류 java.util.concurrent.ExecutionException입니다 해석 할 때 (Lcom/ibm/xml/xlxp2/scan/util/EntityManager $ EntitySupport; V "현재의 클래스 로더 (com/ibm/ws/classloading/internal/AppClassLoader의 인스턴스)는 다음과 같습니다. ibm/xml/xlxp2/scan/util/SymbolTable; Lcom/ibm/xml/xlxp2/scan/util/ParsedEntityFactory; 메소드의 정의 클래스에 대한 클래스 로더 (org/eclipse/osgi/internal/loader/EquinoxClassLoader의 인스턴스), com/ibm/xml/xlxp2/scan/DTDScanner, COM/IBM은 XML을/xlxp2/스캔/폴더의 유틸리티/EntityManager의, 유형의 COM에 대해 서로 다른 클래스의 개체가/IBM은 XML을/xlxp2 서명에 사용/스캔/DocumentScanner

[4시 54분]
어떻게로드// 필요한 경우 단일 클래스 로더의 모든 jar 파일?

답변

1

씬 클라이언트 JAR은 독립 실행 형 씬 클라이언트 (이름에서 알 수있는 것처럼)와 같은 환경에서 사용할 WebSphere API를 제공하기 위해 Java EE 응용 프로그램 내에 패키지되도록 설계되지 않았습니다. 그것들을 포함 시키면 서버와 애플리케이션 사이에 많은 클래스 중복이 생길 것이며, LinkageErrors는 그러한 종류의 복제의 일반적인 부작용입니다. 앱에서 jar 파일을 제거하면 (서버 자체에없는 것을 포함해서는 안 됨) 문제를 해결해야합니다.