Java.lang.NoClassDefFoundError: javax / faces / FacesException

I am trying to deploy a web application that I imported from an Eclipse workspace into NetBeans. But it does not deploy, instead it gives me the following exception.

15 Jul, 2011 5:59:04 AM org.apache.catalina.core.StandardContext listenerStart SEVERE: Exception sending context initialized event to listener instance of class org.apache.myfaces.component.html.util.StreamingDestroyerListener java.lang.NoClassDefFoundError: javax/faces/FacesException at org.apache.myfaces.shared_tomahawk.config.MyfacesConfig.<clinit>(MyfacesConfig.java:80) at org.apache.myfaces.component.html.util.StreamingDestroyerListener.contextInitialized(StreamingDestroyerListener.java:32) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:521) at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1359) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) **at java.lang.reflect.Method.invoke(Method.java:597)** at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297) **at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)** at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1500) at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:849) at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:351) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:199) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:558) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859) at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555) **at java.lang.Thread.run(Thread.java:619)** 

Am I missing some JARs?

+8
java jsf
source share
3 answers

NoClassDefFoundError means that the class was present in the classpath at compile time. Tomahawk has an import javax.faces.FacesException; line import javax.faces.FacesException; in the code base. This is one of the core JSF API classes.

This means that the JSF libraries are missing from the webapp class path. The project was in Netbeans, which seems to be connected to a server that is already connected to JSF, such as Glassfish, JBoss AS, etc. The project in Eclipse does not seem to be properly connected to the server, or the server in question does not have JSF bundled, such as Tomcat, Jetty, etc.

The stacktrace hints that you are using Tomcat. You need to download the JSF separately and drop the JAR files into webapp /WEB-INF/lib (where your Tomahawk libraries are also).

+8
source share

Yes, a CNF exception always means no JAR. This classloader cannot find this:

 javax.faces.FacesException 

You will find it by cutting and pasting the class name in findjar.com , for example:

http://www.findjar.com/index.x?query=javax.faces.FacesException

+3
source share

To add another experience: when I ran into this problem, it was because I used ICEFaces and included the $CATALINA_BASE/lib banks in the Tomcat $CATALINA_BASE/lib directory, but included javax.faces.jar in my webapp /WEB-INF/lib . The solution for me was to move javax.faces.jar from /WEB-INF/lib to $CATALINA_BASE/lib . Also, make sure you use the correct version of javax.faces.jar if you use something like ICEFaces.

0
source share

All Articles