2013-08-26 1 views
1

J'ai un problème que je n'arrive pas à comprendre.java.lang.NoClassDefFoundError from websphere

Contexte:

était 7.0.0.19 la version (sans preCompileJsp) Causée par: java.lang.NoClassDefFoundError: org/apache/jsp/_xxx (nom incorrect: com/ibm/_jsp/_xxx) à java.lang.ClassLoader.defineClassImpl (méthode native) à java.lang.ClassLoader.defineClass (ClassLoader.java:275) à java.lang.ClassLoader.defineClass (ClassLoader.java:212) à com.ibm.ws.jsp. webcontainerext.JSPExtensionClassLoader.defClass (JSPExtensionClassLoader.java:181) à com.ibm.ws.jsp.webcontainerext.JSPExtensionClassLoader._loadClass (JSPExtensionClassLoader.java:133)

Il est le seul JSP qui donnent problème, et seulement sur un spécifique environnement (n o problème sur les autres environnements avec la même configuration) le xxx.class est bien présent dans mon répertoire profile/tmp avec d'autres jsp dans le même répertoire (qui ne donnent aucun problème) et le système de fichiers n'est pas plein.

Tests

Je l'ai fait une copie de xxx.jsp à xxxNew.jsp dans le même répertoire je peux accéder au xxxNew.jsp sans aucun problème (donc il n'y a pas de problème de codage) J'ai donc fait mv de xxx.jsp à xxx1.jsp et n'a eu aucun problème pour accéder à la nouvelle jsp nommé J'ai supprimé le xxx.class dans le répertoire tmp J'ai fait le mv retour au prénom (xxx.jsp) et toujours obtenir l'erreur avec une nouvelle classe xxx.class dans le répertoire tmp. Existe-t-il un cache de classes sur le websphere qui pourrait expliquer cela? (pas de cachespec.xml pour dynacache trouvé dans le module de guerre).

Pourquoi Websphere essaie-t-il de trouver une classe à partir du paquet org.apache.jsp et non de com.ibm._jsp? (comment l'AS choisit le mappage de l'URL aux classes?)

Thxs!

Répondre

0

Assurez-vous de ne pas inclure dans votre classapp webapp un moteur JSP ou une autre implémentation de bibliothèques JSP standard qui pourraient être incompatibles avec l'exécution de WebSphere. En outre, une fois que vous avez supprimé tous les jar potentiellement incompatibles, essayez de supprimer les classes générées à partir de la compilation JSP (sous {WAS_HOME}/AppServer/profiles/{VOTRE_PROFILE}/temp), de sorte que la recompilation soit déclenchée et annulez toute classe .class générée avec un état de chemin de classe précédent.

Il serait utile que vous affichiez la liste des fichiers JAR dans le classpath de votre application.

0

Essayez de modifier la stratégie de chargement de classe d'application Web sur la console WAS: PARENT_FIRST/PARENT_LAST.

Questions connexes