Le Touilleur Express

  • Accueil
  • A propos de l’auteur
  • A propos du Touilleur Express

JBoss 4.2.2 JspFactory error

14 septembre, 2007

Une erreur bête après avoir migré de JBoss 4.0.5 à JBoss 4.2.1 GA avec une simple page JSP:
<pre>
org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 22 in the generated java file
The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory

Stacktrace:
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:415)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
com.rfs.j2ee.KiWI.util.CompressFilter.doFilter(CompressFilter.java:86)
com.rfs.wfsignon.web.SignOnFilter.doFilter(SignOnFilter.java:186)
com.rfs.j2ee.KiWI.util.EncodingFilter.doFilter(EncodingFilter.java:38)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
</pre>

Cette erreur est toute bête: l’implémentation de la class JspFactory retournée par le classloader charge une version qui se trouve dans votre EAR ou dans votre WAR. Pour nous en effet nous avions servlet-2.3.jar à la racine de l’EAR (construit avec maven2). Bref il suffit de retirer cette archive de l’EAR et l’application fonctionnera à nouveau. Pensez aussi à retirer un éventuel j2ee.jar qui n’a rien à faire à la racine de votre EAR.

Pour exclure servlet-2.3.jar et jsp-api.jar avec Maven2 lors du packaging, ajouter dans le pom.xml qui genere l’EAR une dependency en forcant le scope à la valeur « provided« :
<pre>

<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.3</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>

</dependencies>

</pre>

J’en profite pour vous donner l’adresse d’un article de présentation et de mise en route de Maven2 très bien écrit: sur le Blog de Jean-François Helie

English version: The JspFactory that is loaded by the Jasper is not the correct one. Check that you don’t have a JspFactory impl in your EAR or WAR/WEB-INF/lib subfolder. In Tomcat 6, the JSP API classes are found in jsp-api.jar and servlet API classes are found in servlet-api.jar, with both located in the lib directory of the Tomcat 6 installation. Any servlet.jar you find
involved with this server would contain out of date classes for this
server. Delete servlet-2.3.jar from your EAR.

Articles similaires:

Default ThumbnailComparaison de différents logiciels d'intégration continue Default ThumbnailJBoss Seam 2.0 Beta 1 premiers tours de clefs Default ThumbnailAtelier JBoss ON the road et JBoss Seam 1.0.0 CR3 Default ThumbnailJour 2 Formation JBoss for Advanced J2EE developers in Berlin

Derniers articles

  • Vis ma vie de Staff/Principal Engineer

    Suite de l’article précédent sur le Staff Engineer. Aujourd’hui, voyons un peu

    20 juillet, 2022
  • Inari

    Devenir Staff Engineer : comment et pourquoi ?

    Après une dizaine d’années en tant que développeur, vous serez un jour

    17 juillet, 2022
  • WeAreDevelopers 2022, conférence à Berlin – jour 1

    Il est 8h40, 19 degrés, vous êtes à Berlin. La queue dehors

    24 juin, 2022

Tweets @nmartignole

  • RT  @e_kaspersky : This report is the beginning of the investigation of this sophisticated attack. Today we publish the first results of the…

    3 hours ago
  • RT  @e_kaspersky : We've discovered a new cyberattack against iOS called Triangulation. The attack starts with iMessage with a malicious at…

    3 hours ago
  • RT  @fcamblor :  @aheritier   @agoncal  Je suis tombé sur ça : https://t.co/SnCEnkmi0F et https://t.co/pHOHOyT9Ob Je ne savais pas que le code é…

    5 hours ago

Mots clés

Apple (32) Architecture (13) Big Data (5) Conference (8) Devoxx (55) Dev Web (37) Doctolib (2) geekevent (1) groovy (2) Innoteria (11) Java (517) Linux (10) Non classé (14) Perso (266) Recrutement (3) Scala (30) scrum (43) Société (3) Startup (20) Web 2.0 (67)

Le Touilleur Express

Blog par Nicolas Martignole

Contactez-moi : nicolas@touilleur-express.fr

Suivez-moi sur Twitter : @nmartignole

Copyright© 2008 - 2020 Nicolas Martignole | Tous droits réservés
  • A propos de l’auteur
  • A propos du Touilleur Express
  • Log In
  • My Account
  • My Profile
  • Reset Password

Le Touilleur Express