2014-12-12 3 views
0

저는 최근 웹 애플리케이션에서 클래스 캐스트 예외를 해결하려고했습니다. 응용 프로그램 서버를 다시 시작한 직후 웹 응용 프로그램의 클래스 로더 정보가 웹 응용 프로그램을 다시 시작하거나 업데이트하지 않은 경우 클래스 로더 정보와 다른 것을 알게 된 몇 가지 테스트가 있습니다.Websphere 7 클래스 로더 차이점

Classloader 정보는 Websphere 관리 콘솔에서 Manage modules - View Module 클래스 로더 - 내보내기를 사용하여 검색되었습니다.

내 보낸 XML의 항목 (webapp .jar 파일의 경로)은 동일합니다. 하지만 일부 항목은 (내가 이해할 때 - 이들은 webapps 클래스 로더의 클래스입니다) 다르다.

아무도 설명 할 수 없습니까?

감사합니다.

업데이트 : 다음은 아마 주요 문제 (내 로그 파일의 XMLSignatureFactory에 ClassCastException이 점점 계속)이다 차이입니다. 이 클래스는 xmlsec 라이브러리에 포함되어 있으며이 라이브러리는 webapp war 파일과 함께 배포됩니다. 클래스 로더 순서는 PARENT LAST로 설정되어 있지만 xmlsec 구현 (재배포 후) 대신 IBM JDK의 XMLSignatureFactory가로드되는 것처럼 보입니다.

Difference of loaded classes

I이 post에있어서, 상기 예외를 설명 하였다. MANIFEST.MF 파일의 설정을 변경하고 서블릿 수신기를 설정 한 후에는 다시 시작할 때마다 응용 프로그램이 작동 할 수 있지만 재배포 문제는 여전히 발생합니다 (이는 매우 짜증납니다).

+0

자세한 정보가 없으면 누구도 도움을받을 수 없을 것입니다. JAR 파일이나 모듈 또는 공유 라이브러리의 다른 항목 이름이 있습니까? 그들은 어떤면에서 차이가 있습니까? 전후에 보여줄 수 있습니까? –

+0

@bkail - 게시물을 업데이트했습니다. 희망이 내 문제를 더 잘 설명합니다. – shimon001

답변

0

여기에도 같은 문제가 있습니다. 이 문제를 해결하려면 xmlsec jar를 AppServer \ classes로 푸시하십시오. 그러면 IBM JDK를 lib 디렉토리로 덮어 쓸 수 있습니다.