Don't Push Ozone - Application Fails to Init

Hi Guys,

I’ve just installed the don’t push ozone addon, and I seem to be getting an init failure when I set the vaadin servlet to be of class: org.vaadin.dontpush.server.DontPushOzoneServlet

I get the following exception.


[ERROR]
 2012-03-18 16:17:48,758 - main - 
[/MSCApp] Servlet /MSCApp threw load() exception
javax.servlet.ServletException: Failed to load application class: my.vaadin.Application
	at com.vaadin.terminal.gwt.server.ApplicationServlet.init(ApplicationServlet.java:71)
	at org.vaadin.dontpush.server.DontPushOzoneServlet.init(DontPushOzoneServlet.java:55)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4176)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4485)

etc etc etc

There is no ‘caused by’ in the stack trace.

Any ideas as to how I can get some additional stack info out to find out why this isn’t initializing properly?

web.xml is setup as per the don’t push manual setup pages.

~Ben

Hi,

I’d suspect this is common Vaadin related problem. The application class (defined in you web.xml) is loaded with reflection (based on the string in web.xml). It looks to me that your server can’t see a class with the defined name. Double check out typing of the fully qualified name of your application class in your web.xml and you should get on with your push app!

cheers,
matti

… and to continue on Matti’s answer: it might also be that the DontPush JAR is loaded with a different classloader than your code (e.g. by being a server-wide shared library), and does not have access to your code and so cannot find the application class. If that is the case, you can either move the DontPush JAR to your project or create a subclass of DontPushOzoneServlet in your project that overrides the createApplication() method (if I remember the method name correctly) to explicitly create an instance of your application class.