2010-11-16 8 views
3

java.lang.NoClassDefFoundError: javax/servlet/jsp/el/ELExceptionjava.lang.NoClassDefFoundError: javax/servlet/jsp/el/ELException

d'utiliser

<c:set var="testVar" value="testVal" />

Tous les autres travaux tags JSTL.

de 1,2
Java 1.4

Howver, les travaux ci-dessus lorsque je considère que ce jsp dans le conteneur global. En d'autres termes, le service informatique a créé une entrée dans le fichier server.xml pour enregistrer mon application Web. C'est dans mon espace d'application web que j'obtiens l'erreur ci-dessus. Mais cela fonctionne très bien si je vois le fichier jsp quand il est situé en dehors de ce dossier de l'application web, je suppose que dans une sorte d'application par défaut wep pour le serveur.

Dans mon dossier lib de l'application web, j'ai les bibliothèques jstl.jar et standard.jar que j'utilisais dans Eclipse lors du développement de locall. Mon environnement Eclipse est configuré pour imiter les versions java et jsp de notre serveur de production obsolète.

Répondre

4

Vous utilisez une version JSTL trop récente pour votre conteneur servlet. JSTL 1.0 qui est conçu pour JSP 1.2 a la classe ELException inclus dans le fichier JAR JSTL. JSTL 1.1 qui est conçu pour JSP 2.0 ne l'a plus inclus puisque c'est avec plusieurs classes spécifiques EL déplacées vers JSP 2.0 API (qui est fourni par le servletcontainer lui-même). Lorsque vous exécutez JSTL 1.1 sur un conteneur JSP 1.2, il se plaindra que ELException est manquant car il n'est pas disponible par JSP 1.2. Donc, pour résoudre votre problème, rétrogradez votre version de JSTL vers la version 1.0. Il est disponible here.

+0

encore une fois BalusC! Merci! – jeff

+0

De rien. – BalusC

0

Java 1.4 est assez vieux.

Je voudrais vérifier la version de standard.jar et jstl.jar que vous utilisez, car l'URI a changé d'une version à l'autre. Je me demande si vous avez différentes versions des fichiers JAR JSTL sur votre machine locale et le serveur.

Je recommande fortement une mise à niveau JDK. Même JDK 5 a atteint la fin de sa durée de vie. Vous patinez sur une glace très mince en utilisant JDK 1.4.

+0

Je voudrais également recommander vivement une mise à niveau. Cependant, selon son histoire de la question, il est malheureusement limité par des cadres supérieurs. Voir les commentaires sur [cette réponse] (http://stackoverflow.com/questions/4158422/jsp-include-page-parameter-using-a-hashmap-in-a-request-attribute/4167018#4167018). – BalusC

+0

Merci pour votre réponse. Notre service informatique est rapide pour garder toutes les machines des employés à jour. Mon bureau a jre1.6.0_22. Pour une raison quelconque, ils ne mettront pas Java à jour sur le serveur Web. L'informatique dit qu'ils n'ont pas besoin de 1.6 sur le serveur, et ils ne veulent pas s'assurer que d'autres applications pourraient gérer un Java plus récent :( – jeff

+0

Dites à votre département informatique que même le passage à JDK 5 et l'utilisation de l'option -server JDK 5 a apporté des modifications substantielles au modèle de mémoire et à l'optimisation de l'exécution du code, ce qui freine la progression en conservant JDK 1.4. suite de tests de régression – duffymo