2012-10-03 19 views
5

Preguntando si algún gurú podría arrojar una idea sobre por qué ocurre lo siguiente al azar.Error aleatorio NoClassDefFound en la aplicación web

Tenemos una aplicación web que desplegamos en el embarcadero 6.1.26 se ejecuta en una instalación de Linux con JRE 1.7_03

No

cada vez, pero de vez en cuando, cuando se pone en marcha el embarcadero - lo que parece ser una muestra aleatoria la clase (de nuestro proyecto) parece ser la fuente de un error NoClassDefFound. Si reiniciamos Jetty, el problema desaparece.

El único patrón que aparece parece ser que las clases en la raíz del error se rellenan a través de anotaciones JAXB.

Para tener más una idea de la frecuencia que se siente, esto ocurre 1/50 veces, si eso.

Me interesaría saber cómo y por qué para este error.

+2

¿tiene más de una lib de jaxb en su classpath en tiempo de ejecución? compare su classpath compilación/tiempo de compilación, libs con su tiempo de ejecución. ¿Hay alguna diferencia? – Kent

Respuesta

1

No estoy seguro de si esto puede ayudar, pero nos topamos con problemas de anotaciones con Jetty 8 y java 6. Para resumir, el procesamiento de anotaciones en esa versión parece depender de libasm, p. inspección de bytecode Así que tenemos que tener cuidado con

  • lo compilamos nuestras clases con (por ejemplo, la versión de JDK, etc ...)
  • que no tire múltiples Librairies asm/javassist a través de nuestras dependencias y terminamos de carga el incorrecto

No estoy familiarizado con la forma Jetty 6 y las anotaciones de proceso Jaxb, pero estoy realmente sorprendido de que ambas funcionen en Java 7. ¿Puedes intentar ejecutar tu código con Java 6?

+0

Realmente no recomendaría ejecutar jetty6 en java 7, mucho mejor usar jetty 7.6.xo 8.1.x con java 7, y los últimos niveles de parche de java 7 en ese –

Cuestiones relacionadas