java jsf myfaces geronimo websphere-ce

java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener al usar MyFaces con WASCE/GerĂ³nimo



jsf geronimo (4)

Caused by: java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener

La clase que falta es parte de Mojarra , que en realidad es el competidor de MyFaces .

No deberías necesitar esa clase cuando uses MyFaces. Esta excepción puede tener las siguientes causas posibles:

  • Hay una entrada <listener> definida manualmente en web.xml de web.xml o web-fragment.xml de cualquiera de los JAR desplegados en /WEB-INF/lib que hace referencia a esta clase de oyente específica de Mojarra.

  • Hay un archivo suelto de Mojarra .tld en el classpath (muy poco probable, ¿quién extraería un archivo JAR y colocaría sus contenidos sueltos en el classpath?). Los archivos TLD se autoinicializan y pueden contener una entrada <listener> que puede desencadenar el registro automático de una implementación de ServletContextListener (como Mojarra ConfigureListener ).

Esos conflictos pueden solucionarse simplemente eliminándolo.

Intento crear una aplicación web JSF simple utilizando MyFaces v 2.1 con WebSphere Application Server Community Edition v3.0.0.1 y Eclipse Juno, pero cuando intento ejecutar la aplicación, aparece el siguiente error

java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener org.apache.geronimo.common.DeploymentException: java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(AbstractWebModuleBuilder.java:665) at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(AbstractWebModuleBuilder.java:698) at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans(TomcatModuleBuilder.java:469) at org.apache.geronimo.j2ee.deployment.SwitchingModuleBuilder.addGBeans(SwitchingModuleBuilder.java:174) at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:764) at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:255) at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:140) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34) at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:131) at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:883) at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:245) at org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:344) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34) at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:131) at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:883) at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:245) at org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:172) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:848) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:773) at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1438) at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:83) at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1276) at java.security.AccessController.doPrivileged(AccessController.java:284) at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1378) at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:799) at sun.reflect.GeneratedMethodAccessor73.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) at sun.rmi.transport.Transport$1.run(Transport.java:171) at java.security.AccessController.doPrivileged(AccessController.java:284) at sun.rmi.transport.Transport.serviceCall(Transport.java:167) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:547) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:802) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:661) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919) at java.lang.Thread.run(Thread.java:736) Caused by: java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) at org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(GeronimoClassLoader.java:85) at java.lang.ClassLoader.loadClass(ClassLoader.java:626) at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345) at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229) at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207) at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.addClass(AbstractWebModuleBuilder.java:670) at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(AbstractWebModuleBuilder.java:661) ... 45 more

Presumiblemente, el error se está produciendo porque los archivos jar MyFaces no están en la ruta de la clase, sin embargo, no puedo entender dónde me estoy equivocando, ya que la ruta de compilación en Eclipse contiene los archivos jar requeridos. También intenté copiar los archivos jar en el directorio WEB-INF / lib pero fue en vano.

La captura de pantalla siguiente muestra la estructura del proyecto junto con las bibliotecas.

¿Hay algo específico que deba hacer en Eclipse o WASCE para incluir los archivos jar o el problema está en otra parte?


Implementé una aplicación web con Myfaces en un servidor Jetty y fue necesario usar un detector y un parámetro init adicional para usar facelets:

<context-param> <param-name>org.apache.myfaces.FACES_INITIALIZER </param-name> <param-value>org.apache.myfaces.webapp.FaceletsInitilializer</param-value> </context-param> <listener> <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class> </listener>


Estaba usando la implementación de mojarra para la compilación y confiaba en apache tomcat para el tiempo de ejecución. Pero tomcat usa la implementación de myfaces. Entonces tenía que incluir mojarra impl jar en WEB-INF / lib para resolver el problema


Yo estaba con el mismo problema. Cuando traté de ejecutar un archivo .html con Eclipse usando Tomcat7 como el servidor local, recibí el error 404 en el navegador. Y en la consola de Eclipse estaba mostrando el error "ClassNotFoundException: com.sun.faces.config.ConfigureListener".

El problema era la biblioteca de Mojarra (.jar) que estaba usando en mi proyecto Dynamic Web. Estaba usando javax.faces-2.3.0-m04.jar.

-> Solución:

Descargue una versión anterior en los repositorios de Mojarra https://maven.java.net/content/repositories/releases/org/glassfish/javax.faces/ . En mi caso, descargué la versión 2.2.7 (javax.faces-2.2.7.jar).

Luego creé un nuevo proyecto de Web dinámica en Eclipse usando JSF v2.0 y se le asignó el archivo javax.faces-2.2.7.jar en la sección de la biblioteca.