2012-10-03 9 views
5

거기에있는 전문가가 다음 이유가 무작위로 발생하는 이유를 알 수 있습니다. 무슨 일이 무작위로 나타납니다 -웹 응용 프로그램에서 임의의 NoClassDefFound 오류가 발생했습니다.

우리는 우리가 부두가 시작될 때 JRE 1.7_03

아니 모든 시간 만에 리눅스 설치에서 실행 이제 다음 모든, 부두 6.1.26에 배포 웹 응용 프로그램이 클래스 (우리 프로젝트에서) NoClassDefFound 오류의 소스로 보인다. Jetty를 다시 시작하면 문제가 사라집니다.

발생하는 유일한 패턴은 오류 루트에있는 클래스가 JAXB 주석을 통해 채워지는 것처럼 보입니다.

빈도에 대한 아이디어를 더주기 위해 1/50 정도의 시간이 걸린다.

나는이 오류에 대해 어떻게 그리고 왜 있는지 알고 싶습니다.

+2

런타임 클래스 패스에 둘 이상의 jaxb 라이브러리가 있습니까? 컴파일/빌드 타임 클래스 경로, libs를 런타임과 비교하십시오. 어떤 차이점이 있습니까? – Kent

답변

1

Google이 Jetty 8 및 Java 6의 특수 효과 문제에 부딪혔다는 것을 확신하지 못했습니다. 길게 이야기하면 해당 버전에서 처리되는 특수 효과 처리는 libasm에 의존하는 것처럼 보입니다. 바이트 코드 검사. 그래서 우리는 우리가 우리의 클래스를 컴파일 무엇

  • 에주의해야합니다 (예를 들어, 등 JDK 버전, ...) 우리는 우리의 의존성를 통해 여러 ASM /와 Javassist의 librairies를 끌어와 부하를 종료하지 않는
  • 을 잘못된 것

나는 Jetty 6와 Jaxb가 주석을 처리하는 방법에 익숙하지 않지만 실제로 Java 7에서 실행될 수 있다는 것에 놀랐습니다. Java 6에서 코드를 실행 해 볼 수 있습니까?

+0

정말 jetty6을 Java 7에서 실행하는 것을 권장하지 않습니다. 부두 7.6.x 또는 Java 8.1.x와 Java 7의 최신 패치 레벨을 사용하는 것이 좋습니다. –

관련 문제