2012-01-18 5 views
0

프로젝트에서 코드를 배포하는 동안 다음 예외가 발생합니다. 마스크 된 클래스는 런타임로드에 실패한 유틸리티 클래스 파일입니다. 컴파일 타임에 클래스가 존재하더라도 클래스가로드되지 않는 이유는 무엇입니까? staticstatic {} 변수 또는 블록 중 어느 클래스 초기화 동안 RuntimeException (예컨대 NullPointerException 등) 던 경우클래스를 컴파일 할 때 존재하지 않더라도 클래스를로드 할 수 없습니다.

 
javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class com.***.****.****** 
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:333) 
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) 
    **** 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) 
+0

위의 예외가 발생하는 곳의 코드 –

답변

1

NoClassDefFoundError이 발생할 수있다.

RuntimeException은 스택 트레이스에서 아래쪽으로 볼 수 있어야합니다. 그것을 해석하고 이에 따라 코드를 수정하십시오.

1

나는 BalusC에 동의합니다. 그러나 상황에 따라 예외가 발생하지 않을 수도 있습니다 (이 경우 사용자는 매우 자세히보아야합니다). 최신 JRE는 훨씬 우수합니다 (펑키 한 일을 할 수있는 웹 로직 내에서 실행하고 있음에도 불구하고). 나는이 문제를 잠시 동안 가지고 있지 않았지만, 시간이 지나면 가장 큰 버그 베어 중 하나였습니다.

관련 문제