Running JSF 2.0 on Servlet 2.4 container

前端 未结 1 886
独厮守ぢ
独厮守ぢ 2020-11-29 10:03

As far as I know, JSF 2 requires servlet 2.5, so it doesn\'t run on JBOSS 4.05 (Tomcat 5.5). Unfortunately I have to deploy an application who uses JSF 2.0 and Primefaces on

1条回答
  •  庸人自扰
    2020-11-29 10:35

    JSF 2.0 depends heavily on EL 2.1 which is part of Servlet 2.5 and is a major change as opposed to EL 2.0 which is part of Servlet 2.4, but it does not depend on any particular Servlet 2.5 specific API. Servlet 2.4 should work as good. So in theory, you could get JSF 2.0 to work on Servlet 2.4 if you provide your own EL 2.1 API and implementation in /WEB-INF/lib. I did a quick test here on Tomcat 5.5.33 with the following libraries in /WEB-INF/lib:

    • el-api.jar file copied from lib folder of Tomcat 6.0.x
    • jboss-el.jar file (implements EL 2.1 and supports EL 2.2 like method invocation with arguments)
    • jsf-api.jar and jsf-impl.jar from Mojarra 2.0.x

    And a Servlet 2.4 web.xml where the JBoss EL is been declared:

         
        com.sun.faces.expressionFactory
        org.jboss.el.ExpressionFactoryImpl   
    
    

    A simple JSF 2.0 Facelet (not JSP!) with a simple with a button with and a simple @ViewScoped @ManagedBean works for me on Tomcat 5.5.33. Give it a try on your JBoss 4.0.5 and test it thoroughly.

    Note that you need a minimum of JDK 1.5, not JDK 1.4. Also note that your application is this way unportable to any Servlet 3.0 container due to presence of the Servlet 2.5 specific el-api.jar file.

    0 讨论(0)
提交回复
热议问题