[SPRING] "NoClassDefFoundError : 클래스를 초기화 할 수 없습니다"오류
SPRING"NoClassDefFoundError : 클래스를 초기화 할 수 없습니다"오류
프로젝트를 실행하면 다음과 같은 오류가 발생합니다.
Sep 9, 2009 8:22:23 AM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet Jersey threw exception java.lang.NoClassDefFoundError: Could not initialize class SpringFactory at com.point2.prospect.persistence.hibernate.HibernateTransactionInterceptor.doFilter(HibernateTrans actionInterceptor.java:17) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.point2.prospect.restapi.ServerErrorInterceptor.doFilter(ServerErrorInterceptor.java:27) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619)
나는이 문제가 웹 전체에 묻히는 패턴을 가지고 있음을 알아 차리지 만, 진짜 답이 없다. 이런 종류의 오류에 대한 일반적인 원인은 무엇입니까?
해결법
-
==============================
1.NoClassDefFound 오류는 불투명 한 오류이며 더 심각한 문제를 숨기고 있습니다. ClassNotFoundException (클래스가 존재하지 않는 경우에 슬로우됩니다)와 같지 않습니다.
NoClassDefFound 오류는 불투명 한 오류이며 더 심각한 문제를 숨기고 있습니다. ClassNotFoundException (클래스가 존재하지 않는 경우에 슬로우됩니다)와 같지 않습니다.
NoClassDefFound는 클래스가 존재하지 않는다는 것을 나타낼 수 있지만, 일반적으로 클래스 로더가 클래스의 바이트를로드하고 "defineClass"를 호출하면 throw됩니다. 또한 다른 단서 또는 가능한 "원인"예외에 대한 전체 스택 추적을주의 깊게 확인하십시오 (특정 백 트레이스에 아무 것도 표시하지 않음).
NoClassDefFoundError를 얻을 때 처음 보는 것은 클래스의 정적 비트, 즉 클래스를 정의하는 동안 이루어지는 초기화입니다. 이 작업이 실패하면 NoClassDefFoundError가 throw됩니다. ExceptionInInitializerError를 발생시켜 문제의 세부 정보를 나타내야하지만 내 경험상 이러한 문제는 거의 발생하지 않습니다. ExceptionInInitializerError는 처음 클래스를 정의하려고 할 때만 NoClassDefFound를 던집니다. 따라서 이전 로그를 살펴보십시오.
나는 HibernateTransactionInterceptor 라인의 코드를보고 그것이 무엇이 필요한지 보도록 제안 할 것이다. SpringFactory 클래스를 정의 할 수없는 것 같습니다. 어쩌면 해당 클래스의 초기화 코드를 확인하십시오. 그것을 디버그 할 수 있다면, 위의 마지막 행 (17)에서 중지하고 디버그하여 예외의 원인이되는 정확한 행을 찾으십시오. ExceptionInInitializerError가 매우 운이 좋으면 로그에서 더 높은 곳을 확인하십시오.
-
==============================
2.필요한 클래스 정의가 누락되었습니다. 일반적으로 필수 JAR이 클래스 경로에 있지 않기 때문에 발생합니다.
필요한 클래스 정의가 누락되었습니다. 일반적으로 필수 JAR이 클래스 경로에 있지 않기 때문에 발생합니다.
J2SE API에서 :
-
==============================
3.jar 라이브러리가 다른 Linux 사용자 (루트)에 의해 복사되고 로그인 된 사용자 (프로세스)에 jar 파일 내용을 읽을 수있는 충분한 권한이 없기 때문에 나는 동일한 문제에 직면했습니다.
jar 라이브러리가 다른 Linux 사용자 (루트)에 의해 복사되고 로그인 된 사용자 (프로세스)에 jar 파일 내용을 읽을 수있는 충분한 권한이 없기 때문에 나는 동일한 문제에 직면했습니다.
-
==============================
4.이 오류가 발생했을 때 OpenJDK를 사용하고 있다는 것을 알았습니다. 오라클 JDK를 대신 설치하면 문제가 해결되었습니다.
이 오류가 발생했을 때 OpenJDK를 사용하고 있다는 것을 알았습니다. 오라클 JDK를 대신 설치하면 문제가 해결되었습니다.
from https://stackoverflow.com/questions/1401111/noclassdeffounderror-could-not-initialize-class-error by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] JPA EntityListener에 Spring 의존성 삽입하기 (0) | 2018.12.08 |
---|---|
[SPRING] DispatcherServlet이 다른 응용 프로그램 컨텍스트를 만드는 이유는 무엇입니까? (0) | 2018.12.08 |
[SPRING] Spring 내에서 알려지지 않은 속성을 무시하도록 Jackson을 어떻게 세계적으로 설정합니까? (0) | 2018.12.08 |
[SPRING] Spring에서 조롱 된 JNDI 데이터 소스를 테스트하는 방법은 무엇입니까? (0) | 2018.12.08 |
[SPRING] junit 테스트 클래스 전체에서 스프링 응용 프로그램 컨텍스트 재사용 (0) | 2018.12.08 |