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.
Failure to deploy on Google App Engine
I'm fairly inexperienced. I've been trying to get a Vaadin app to deploy to Google App Engine for almost a week, tried different configurations when creating the project in Eclipse and inside the web.xml file, but no matter what I do, I get the "500 error" in browser. I've chosen to create my app with Vaadin framework mostly for it's GAE functionality. I'm posting below the web.xml file and the errors on the GAE server log. The UI class has just the basic sample code with the button and the "thank you for clicking label", and I replaced the VaadinServlet class with GAEVaadinServlet. Please help!
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>proc</display-name>
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>
com.vaadin.server.GAEVaadinServlet
</servlet-class>
<init-param>
<param-name>UI</param-name>
<param-value>com.example.proc.ProcUI</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
GAE log:
W 18:50:57.456 EXCEPTION java.lang.ClassNotFoundException: com.vaadin.server.GAEVaadinServlet at
com.google.appengine.runtime.Request.process-5857cfde810eba7e(Request.java) at java.lang.ClassLoader.loadClass(ClassLoader.java:375) at
org.mortbay.util.Loader.loadClass(Loader.java:91) at org.mortbay.util.Loader.loadClass(Loader.java:71) at
org.mortbay.jetty.servlet.Holder.doStart(Holder.java:73) at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:242) at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685) at
org.mortbay.jetty.servlet.Context.startContext(Context.java:140) at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at
com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:437) at
com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:444) at
com.google.tracing.CurrentContext.runInContext(CurrentContext.java:256) at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308) at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:300) at
com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:441) at java.lang.Thread.run(Thread.java:745) E 18:50:57.456
javax.servlet.ServletContext log: unavailable javax.servlet.UnavailableException: com.vaadin.server.GAEVaadinServlet at
org.mortbay.jetty.servlet.Holder.doStart(Holder.java:79) at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:242) at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685) at
org.mortbay.jetty.servlet.Context.startContext(Context.java:140) at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:206) at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:179) at
com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:136) at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:469) at
com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:437) at
com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:444) at
com.google.tracing.CurrentContext.runInContext(CurrentContext.java:256) at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308) at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:300) at
com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:441) at
com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:235) at java.lang.Thread.run(Thread.java:745) W 18:50:57.459
Failed startup of context
com.google.apphosting.utils.jetty.RuntimeAppEngineWebAppContext@1e89dbf{/,/base/data/home/apps/e~saptamanala/1.389771675399861701}
java.lang.NullPointerException at java.lang.Class.isAssignableFrom(Native Method) at
org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256) at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685) at
org.mortbay.jetty.servlet.Context.startContext(Context.java:140) at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:206) at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:179) at
com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:136) at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:469) at
com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:437) at
com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:444) at
com.google.tracing.CurrentContext.runInContext(CurrentContext.java:256) at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308) at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:300) at
com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:441) at
com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:235) at java.lang.Thread.run(Thread.java:745) F 18:50:57.530
Uncaught exception from servlet java.lang.NullPointerException at java.lang.Class.isAssignableFrom(Native Method) at
org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256) at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685) at
org.mortbay.jetty.servlet.Context.startContext(Context.java:140) at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:206) at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:179) at
com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:136) at
com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:469) at
com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:437) at
com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:444) at
com.google.tracing.CurrentContext.runInContext(CurrentContext.java:256) at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308) at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:300) at
com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:441) at
com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:235) at java.lang.Thread.run(Thread.java:745)