Important Notice - Forums is archived
To simplify things and help our users to be more productive, we have archived the current forum and focus our efforts on helping developers on Stack Overflow. You can post new questions on Stack Overflow or join our Discord channel.

Vaadin lets you build secure, UX-first PWAs entirely in Java.
Free ebook & tutorial.
Root Class ClassNotFoundException
I am trying to write a Vaadin Application, but every time I load my application I get the following Exception:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: com.vaadin.terminal.gwt.server.ServletPortletHelper$ApplicationClassException: com.example.testing.TestingRoot could not be loaded
com.vaadin.terminal.gwt.server.ApplicationServlet.init(ApplicationServlet.java:65)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
root cause
com.vaadin.terminal.gwt.server.ServletPortletHelper$ApplicationClassException: com.example.testing.TestingRoot could not be loaded
com.vaadin.terminal.gwt.server.ServletPortletHelper.verifyRootClass(ServletPortletHelper.java:75)
com.vaadin.terminal.gwt.server.ServletPortletHelper.getApplicationClass(ServletPortletHelper.java:42)
com.vaadin.terminal.gwt.server.ApplicationServlet.init(ApplicationServlet.java:60)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
root cause
java.lang.ClassNotFoundException: com.example.testing.TestingRoot
java.net.URLClassLoader$1.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(Unknown Source)
java.lang.ClassLoader.loadClass(Unknown Source)
java.lang.ClassLoader.loadClass(Unknown Source)
com.vaadin.terminal.gwt.server.ServletPortletHelper.verifyRootClass(ServletPortletHelper.java:67)
com.vaadin.terminal.gwt.server.ServletPortletHelper.getApplicationClass(ServletPortletHelper.java:42)
com.vaadin.terminal.gwt.server.ApplicationServlet.init(ApplicationServlet.java:60)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.26 logs.
I am using (all 64-bit):
- Windows 7 Home Premium
- Java 6 update 31
- Tomcat 7.0.26
- Eclipse Indigo SR2
I am trying to use Vaadin 7 Alpha1, but the same thing happens with Vaadin 6.7.6 (with appropriate changes from Root to Application).
I have exported a ROOT.war from Eclipse, and deployed it on Tomcat separately from Eclipse and the same thing happens.
I can confirm that the following file exists: "Tomcat 7.0"\webapps\ROOT\WEB-INF\classes\com\example\testing\TestingRoot.class
I have spent the best part of three days going through and rechecking everything, ending with me formatting and reinstalling my computer as Vaadin 6 used to work (this is why I have tried 6.7.6). I have created a new 'Vaadin Project' in Eclipse, with only the TestingRoot.java (with the "Hello Vaadin User" Label) and web.xml to limit where the error could be.
I feel I must be overlooking something obvious. Any help will be greatly appreciated.
My apologies.
I had placed the Vaadin jar in the Tomcat\lib folder, but if I move this to the WebContent\WEB-INF\lib folder it works.
I just did a quick search, and found that this has been identified previously, but did not come up in my previous searches.