JSF 2.0 depende en gran medida de EL 2.1 que forma parte de Servlet 2.5 y es un cambio importante en comparación con EL 2.0 que forma parte de Servlet 2.4, pero no depende de ninguna API específica específica de Servlet 2.5. Servlet 2.4 debería funcionar tan bien. Entonces, en teoría, podría obtener JSF 2.0 para trabajar en Servlet 2.4 si proporciona su propia API EL 2.1 e implementación en /WEB-INF/lib
. Hice una prueba rápida aquí en Tomcat 5.5.33 con las siguientes bibliotecas en /WEB-INF/lib
:
el-api.jar
archivo copiado de lib
carpeta de archivo Tomcat 6.0.x
jboss-el.jar
(EL implementa 2.1 y soporta EL 2.2 como la invocación de métodos con argumentos)
jsf-api.jar
y jsf-impl.jar
de Mojarra 2.0.x
y un Servlet 2.4 web.xml
donde JBoss EL se ha declarado:
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
</context-param>
Un simple JSF 2.0 Facelet (JSP no!) con un simple <h:form>
con un botón con <f:ajax>
y un simple @ViewScoped
@ManagedBean
funciona para mí en Tomcat 5.5.33. Pruébelo en su JBoss 4.0.5 y pruébelo a fondo.
Tenga en cuenta que se necesita un mínimo de JDK 1.5, no JDK 1.4. También tenga en cuenta que su aplicación no se puede importar a ningún contenedor de Servlet 3.0 debido a la presencia del archivo específico el-api.jar
de Servlet 2.5.
¡Buen hombre, gracias! Pero todavía tengo un problema: Primefaces no funcionó con ese enfoque. El error: Causada por: org.xml.sax.SAXException: Manejo de errores [tarro: file: /HIDDEN/jboss-4.0.5.GA/server/default /./ tmp/deploy/tmp1314317090148712617primefaces-test-exp.war/WEB-INF/lib/primefaces-3.0.M2-SNAPSHOT.jar! /META-INF/[email protected],17] –
Pruebe PrimeFaces 2.x. El 3.0 tiene dependencias específicas de Servlet 3.0. – BalusC