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

JBoss 4.2.2 JspFactory error

    Home Java JBoss 4.2.2 JspFactory error

    JBoss 4.2.2 JspFactory error

    Par Nicolas Martignole | Java | Commentaires fermés | 14 septembre, 2007 | 0 | 1 065 affichages
         

    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>

    &lt;dependencies&gt;
    &lt;dependency&gt;
    &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
    &lt;artifactId&gt;servlet-api&lt;/artifactId&gt;
    &lt;version&gt;2.3&lt;/version&gt;
    &lt;scope&gt;provided&lt;/scope&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
    &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
    &lt;artifactId&gt;jsp-api&lt;/artifactId&gt;
    &lt;version&gt;2.0&lt;/version&gt;
    &lt;scope&gt;provided&lt;/scope&gt;
    &lt;/dependency&gt;

    &lt;/dependencies&gt;

    </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
    jboss, jsp

    Recent Posts

    • GitHub Actions : le tueur de Jenkins ?

      Avouez-le : ce titre de blog est super racoleur. J’avais aussi pensé

      15 février, 2021
    • Comment recréer du lien social dans l’Entreprise avec des outils numériques en 2021

      Nous sommes en février 2021 pendant le 3ème confinement lié à la

      10 février, 2021
    • FizzBuzz en Java et Scala (surtout Scala)

      L’exercice FizzBuzz est un petit exercice très simple, à tester par exemple

      9 février, 2021

    Recent Tweets

    •  @LostInBrittany   @FGRibreau   @aheritier  😎

      13 hours ago
    •  @LostInBrittany   @FGRibreau   @aheritier  J ai un souci GitHub demain à corriger aussi avec oauth2

      13 hours ago
    •  @LostInBrittany   @FGRibreau   @aheritier  J ai réparé l’authentification Google. Tu devrais pouvoir te reauthentifier

      13 hours ago
    • RT  @_beauraF : Since 2:19 p.m., the entire  @doctolib  platform has been running on Rails 6.1. 🚀 Once again it feels like launching a rocket…

      23 hours ago
    • RT  @ponceto91 : Bonjour les piou-pious. Un week-end qui commence sous le signe d'une énorme faille de sécurité dans VMware rendant vulnérabl…

      23 hours ago

    Mots clés

    agile (18) ajax (11) Apple (11) architecture (6) barcamp (5) BarCampJavaParis (5) ddd (5) devoxx (33) esb (6) exo (6) flex (9) geek (5) google (11) grails (5) groovy (10) humeur (12) humour (7) independant (6) iphone (12) Java (77) javascript (7) jazoon (28) jboss (22) jboss seam (12) jsf (9) jug (16) Linux (11) mac (6) mule (5) parisjug (7) paris jug (22) pjug (6) play (8) playframework (6) portlet (5) recrutement (6) ria (8) Scala (21) scrum (44) spring (23) Startup (11) usi (21) usi2010 (9) web (16) xebia (7)

    Le Touilleur Express

    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
    Le Touilleur Express