2011-05-13 15 views
6

Por lo que sé, JSF 2 requiere servlet 2,5, por lo que no se ejecuta en JBOSS 4,05 (Tomcat 5.5). Desafortunadamente tengo que implementar una aplicación que use JSF 2.0 y Primefaces en ese entorno.Correr JSF 2.0 en Servlet 2.4 contenedor

¿Hay algún truco para usar eso?

Respuesta

12

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.

+1

¡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] –

+1

Pruebe PrimeFaces 2.x. El 3.0 tiene dependencias específicas de Servlet 3.0. – BalusC

Cuestiones relacionadas