C'est ce que j'ai eu sur l'écran du navigateur lorsque j'essaie d'exécuter le fichier JSP. p>
La méthode getjspapplicationContext (servleContext) est indéfinie pour le type JSPFFactory P> blockQuote>
StackTrace: p>
org.apache.jasper.compiler.defaulterrorhandler.javacerror (Defaulterrorhandler.java:92) org.apache.jasper.compiler.errordispatcher.javacerror (errordispatcher.java:330) org.apache.jasper.compiler.jdtcompiler.generateclass (jdtcompiler.java:439) org.apache.jasper.compiler.compiler.comPile (compiler.java:334) org.apache.jasper.compiler.compiler.comPile (compiler.java:312) org.apache.jasper.compiler.compiler.comPile (compiler.java:299) org.apache.jasper.jspcompilationContext.comPilet (jspcompilationContext.java:586) org.apache.jasper.servlet.jspsservletwrapper.Service (JSPServilletWrapper.java:317) org.apache.jasper.servlet.jspservlet.servicejspfile (jspservlet.java:342) org.apache.jasper.servlet.jspservlet.service (jspservlet.java:267) javax.servlet.http.httpservlet.service (httpservlet.java:856) P> blockQuote>
et l'exception Jasper est jetée sur la fenêtre Tomcat lorsque je l'ai couru. p>
4 Réponses :
La méthode getjspapplicationContext (servleContext) est indéfinie pour le type JSPFFactory P> blockQuote>
qui Méthode a été introduite dans JSP 2.1. Il y a 3 causes pour ce problème: p>
Vous utilisez une version trop ancienne du conteneur JSP (vous avez besoin d'exemple au moins Tomcat 6.0 ). P> LI>
Vous avez déclaré la mauvaise version de servlet dans
web.xml code>. JSP 2.1 va de pair avec servlet 2.5, donc votreweb.xml code> doit au moins être déclaré selon la spécification Servlet 2.5 (vous avez toujours besoin d'un servlet 2.5 / JSP 2.1 Capable servletContainer pour cela). < / p> li>Vous avez dupliqué des bibliothèques spécifiques aux VerserVerserver plus anciennes dans les
/ Web-Inf / Lib CODE>, commeservlet-Api.jar code>,jsp -api.jar code> et ainsi de suite. Vous devriezjamais strong> faire cela. Cela n'entraînera que des collisions de classement. Éliminez-les d'eux dans votre service Web et laissez-les / intact-les dans l'Appserver. P> LI> ol>
Ingcarlos, comment avez-vous résolu votre problème? Quelle méthode avez-vous utilisée?
@janwen: Vérifiez simplement l'une des causes énumérées.
Merci Balusc, Cause1 et Cause2 est OK.Je Supprimer Servlet-Api.jar et JSP-API.JAR dans mon projet.But Toujours [Code] Une erreur est survenue à la ligne: 22 Dans le fichier Java généré, la méthode getjspapplicationContext (servleContext) est indéfini pour le type JSPFFactory [/ code]
@janwen: Ensuite, ils errent toujours ailleurs dans la classe de classe où ils n'appartiennent pas. Par exemple, le / lib code> ou / lib / ext code> dossier de la jre. Ou vous avez d'autres pots contenant une API JSP obsolète, telle que javaee.jar code>. Après tout, votre / web-inf / lib code> ne doit absolument pas contenir d'autres bibliothèques que celles requises par la WebApp elle-même. Voir aussi cette question connexe: Stackoverflow.com/Questtions/4076601/...
Non, je vois les dossiers Web-Inf / Lib de Tomcat6, il n'y a pas de bocaux.
@janwen: tomcat6! = JRE. Vous devez supprimer N'importe quel B> Bocons spécifiques au conteneur de servlet que vous avez déjà téléchargé / copié / déplacé / déplacé n'importe où dans votre environnement.
Laissez-nous Continuez cette discussion en chat
La méthode getjspapplicationContext (servleContext) est indéfinie pour Le type JSPFFactory P>
Cela peut également se produire lorsque votre projet nécessite une référence à un serveur d'exécution: p>
- Faites un clic droit sur votre projet dans «Project Explorer» d'Eclipse Li>
- Choisissez "Construction Path | Configurer le chemin de construction" LI>
- Cliquez sur l'onglet "Bibliothèques" LI>
- Cliquez sur "Ajouter une bibliothèque" li>
- Sélectionnez "Server Runtime" et cliquez sur "Suivant" LI>
- Choisissez "Apache Tomcat 7" ou quelle que soit la version de votre serveur d'exécution. LI> ul>
Remarque: cette erreur peut également se produire pour les créations de fourmis, et pour ce cas, vous devez faire référence à une exécution cible dans votre fichier Build.xml ... Les références suivantes font référence à une installation de Tomcat locale et utilise Ses dossiers "lib" lors de la compilation: p>
xxx pré> accroché de cette URL : p> blockQquote>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${servlet.version}</version>
<scope>provided</scope>
</dependency>
also fixes the issues
Pour Maven, j'ai également dû ajouter la dépendance JSP-API en tant que pot fourni comme celui-ci: (une autre dépendance le tirait, je ne pouvais jamais comprendre lequel, mais cela fixait-le)