Java Server Faces con JBoss y Netbeans

Recientemente he estado trabajando con un servidor de aplicaciones nuevo (al menos para mi :D), se trata de jboss, el condecorado servidor de red hat, que aparte de ser un devorador de memoria tiene un no se que, que lo hace ver profesional.

Al grano. Cuando intentaba hacer deploy de una aplicacion que utilizaba JSF comunes me tope con el siguient error:

The specified InjectionProvider implementation ‘org.jboss.web.jsf.integration.injection.JBossDelegatingInjectionProvider’ does not implement the InjectionProvider interface.

Problema: Aunque el problema pareciera otro, todo radica en que jboss trae su propia implementacion de JSF y entra en conflicto con nuestro proyecto en netbeans.

Solución: Deshabilitar la implementacion incluida con jboss, dependiendo el contexto que estemos trabajando abrimos con nuestro editor de texto favorito el archivo de configuracion web.xml, en mi caso estaba trabajando con el contexto default:

nano /opt/5.0.0GA jboss-5.0.0.GA\server\default\deployers\jbossweb.deployer\web.xml

Y borramos o comentamos las siguientes lineas:

<listener>
<listener-class>org.jboss.web.jsf.integration.config.JBossJSFConfigureListener <
/listener-class>
</listener>


<listener>
<listener-class>com.sun.faces.application.WebappLifecycleListener</listener-class>
</listener>

8 Replies to “Java Server Faces con JBoss y Netbeans”

  1. Usando Firefox 3.0.11 Firefox 3.0.11 en Mandriva 2009.1 Mandriva 2009.1

    Excelente ayuda, llevava años tratando de hacer funcionar jboos-icefaces-netbeans, gracias.
    Cualquier ayuda que necesites con icefaces, con mucho gusto

  2. Usando Firefox 3.0.11 Firefox 3.0.11 en Windows XP Windows XP

    Estimado, la solución sirve…. pero para deshabilitar las librerías jsf del servidor se cuenta con la siguiente propiedad:
    «org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL»

    La cual le indica al servidor que no utilise sus librerías al deployar el proyecto.

    Esta variable se setea en el web.xml del proyecto en cuestión, agregandola así:
    »
    org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL
    true
    »

    Cambie el true por false según interese o no usar las librerías jsf que provee el JBoss.

    Saludos

  3. Usando Firefox 3.0.13 Firefox 3.0.13 en Ubuntu 9.04 Ubuntu 9.04

    @Guillermo Fernandes: Excelente recomendacion, gracias la voy a tomar en cuenta 🙂

  4. Usando Google Chrome 6.0.472.63 Google Chrome 6.0.472.63 en Windows 7 Windows 7

    Buenos días. Compañero es muy excelente la ayuda que has brindado. Comentar esas líneas me sirvió correctamente. Te lo agradezco mucho.

  5. Usando Firefox 3.6.13 Firefox 3.6.13 en GNU/Linux GNU/Linux

    Hola tengo un problema enorme ya hice lo que me indicas y me da el siguiente error: Espero me puedan ayudar

    java.lang.ClassCastException: org.hibernate.validator.event.ValidateEventListener cannot be cast to org.hibernate.event.PreInsertEventListener
    org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:819)
    dsi.sideco.arq.util.HibernateUtil.(HibernateUtil.java:24)
    dsi.sideco.administracion.dao.LoginDAO.consultar(LoginDAO.java:28)
    dsi.sideco.administracion.bsn.LoginBSN.validar(LoginBSN.java:40)
    dsi.sideco.administracion.form.LoginForm.validaAcceso(LoginForm.java:32)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    org.apache.el.parser.AstValue.invoke(AstValue.java:170)
    org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
    com.sun.faces.application.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
    com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
    javax.faces.component.UICommand.broadcast(UICommand.java:387)
    javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
    javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
    com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
    com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:18)
    com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.renderCycle(ReceiveSendUpdates.java:132)
    com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.service(ReceiveSendUpdates.java:74)
    com.icesoft.faces.webapp.http.core.RequestVerifier.service(RequestVerifier.java:31)
    com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24)
    com.icesoft.faces.webapp.http.servlet.BasicAdaptingServlet.service(BasicAdaptingServlet.java:16)
    com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23)
    com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:53)
    com.icesoft.faces.webapp.http.servlet.SessionVerifier.service(SessionVerifier.java:26)
    com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23)
    com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:131)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:56)
    org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

  6. Usando Safari 5.0.4 Safari 5.0.4 en Mac OS X  10.6.7 Mac OS X 10.6.7

    Yo estoy trabajando con JSF 2.0 y Jboss AS 5.0.1, la solución que aportas parece funcionar pero creo que seria mejor sustituir las versiones de las bibliotecas que incluyen estas clases por las versiones apropiadas para JSF 2.0. si quitas estos listeners parece que ManagedBeans anotados no funcionan. Si eres nuevo con Jboss y vas a usar JSF2 puede que estés mas interesado en utilizar Jboss AS 6 que ya incluye soporte para JSF2. Yo no puedo migrar tan fácil porque tengo ambientes productivos con 5.0.1.

  7. Usando Opera 60.0.3255.170 Opera 60.0.3255.170 en Windows 7 x64 Edition Windows 7 x64 Edition

    Buenas Tardes.. una consulta…. ¿como puedo desahibiltar todas las librerías del servidor jboss para que utilice mis librerias añadidas al proyecto.?? gracias…

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *