2010-07-01 3 views
2

Mon problème est que lorsque le tag <c:if est atteint, le problème suivant se produit. J'utilise Spring sur google app engine.JSTL Google App Engine Problème

java.lang.AbstractMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext; 
    at javax.servlet.jsp.jstl.core.LoopTagSupport.unExposeVariables(LoopTagSupport.java:620) 
    at javax.servlet.jsp.jstl.core.LoopTagSupport.doFinally(LoopTagSupport.java:354) 
    at org.apache.jsp.WEB_002dINF.views.templates.master_005fb_jsp._jspx_meth_c_forEach_0(master_005fb_jsp.java:544) 
    at org.apache.jsp.WEB_002dINF.views.templates.master_005fb_jsp._jspx_meth_c_if_0(master_005fb_jsp.java:482) 
    at org.apache.jsp.WEB_002dINF.views.templates.master_005fb_jsp._jspService(master_005fb_jsp.java:314) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) 

Répondre

0

Très probablement un des problèmes de la version de la bibliothèque. Google AppEngine fournit une bibliothèque JSTL par défaut et vous n'avez pas besoin d'inclure la vôtre dans le répertoire WEB-INF/lib. Supprimez simplement la bibliothèque que vous avez peut-être ajoutée à ce répertoire et nettoyez le build pour le tester à nouveau.

2

Le java.lang.AbstractMethodError signifie qu'une méthode abstraite comme mentionné dans le message d'erreur qui est déclaré dans certains (résumé) API dans le classpath d'exécution en cours est manquant dans la mise en œuvre concrète dans le classpath d'exécution en cours. Dans ce cas, il s'agit de la méthode javax.servlet.jsp.PageContext.getELContext(). Selon le javadocs cette méthode abstraite a été introduite dans JSP 2.1. L'implémentation concrète est le serveur que vous utilisez actuellement.

Cela peut être dû en ayant une jsp-api.jar d'un autre marque/version serveur supportant JSP 2.1 dans le classpath d'exécution de votre webapp, très probablement dans le dossier /WEB-INF/lib, alors que le serveur GAE que vous utilisez ne met pas en œuvre JSP 2.1. Débarrassez-vous de toutes les bibliothèques spécifiques au serveur dans le classpath runtime de votre webapp. Ils n'appartiennent pas là. Ils appartiennent (et sont déjà) dans la bibliothèque du serveur.

1

Essayez d'utiliser une ancienne version de JSTL. Il semble que vous utilisez 1.2 et vous devriez probablement utiliser 1.1.

0

vous n'avez pas à ajouter une bibliothèque jstl dans le répertoire WEB-INF/lib, il suffit d'exécuter