sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo puedo resolver un NoClassDefFoundError?

java.lang.NoClassDefFoundError significa el tiempo de ejecución la versión de la clase en el classpath no es la misma que en compilar tiempo.

Su problema podría ser que se encuentren varias versiones de la clase cuando se implementa el servidor. Observo la clase org.apache.myfaces.trinidadinternal.convert.ColorConverter se encuentra en trinidad-impl.jar

¿Puede buscar cuántos frascos de este tipo se encuentran en el entorno del servidor de tiempo de ejecución más sus propias bibliotecas de aplicaciones web?

En Windows, el servidor incorporado de Jdev se ejecuta en esta carpeta

C:\Users\<...>\AppData\Roaming\JDeveloper\system11.1.1.4.37.59.23 o algo similar

necesita esto en su aplicación web/WEB-INF/lib y no en las otras áreas.

En mi local, encuentro el Jar en C:\Users\<...>\AppData\Roaming\JDeveloper\system11.1.1.4.37.59.23\o.j2ee.wlLibs\jsp\Trinidad-Components1.2.war

Creo que podría usar la configuración weblogic.xml para forzar que la clase WEB-INF/lib se cargue con preferencia a la del servidor/lib con

    <container-descriptor>     
<prefer-web-inf-classes>true</prefer-web-inf-classes>   
</container-descriptor>