Vaadin lets you build secure, UX-first PWAs entirely in Java.
Free ebook & tutorial.
Vaadin 7.5.8 + Eclipse Mars + Google App Engine
I'm just starting with Vaadin and I'm trying to test it out by deploying the example project that is created by the Vaadin plug-in for Eclipse to Google App Engine. I followed the directions at https://vaadin.com/wiki/-/wiki/Main/Google%20AppEngine%20HOWTO, set up a GAE project and deployed it successfully. I'm able to see the static index page, but when I make a request to the generated servlet, I get a ClassNotFoundException for GAEVaadinServlet.
I did a search and found that someone was able to solve this issue a few years ago by going to the Java Build Path and editing the Ivy libraries to load files from "retrieved artifacts" instead of from the cache (https://vaadin.com/forum/#!/thread/2442343/2603772). This did not solve the problem for me, and I found that the JARs in my project's lib/ folder change every time I edit one of the Ivy library entries on the build path...even if I don't actually change anything. No matter what I do, Eclipse complains of at least a couple JARs missing (the exact JARs missing change every time), preventing me from being able to build the project. I checked the cache, and am able to see the "missing" JARs there.
I've never worked with Ivy before, so I'm not sure if there's something I'm doing wrong there, but I haven't made any changes to the default settings unless instructed to.
I'm very confused by the behavior I'm seeing and have no idea what I'm doing wrong. Any help is appreciated.
I ended up switching the Ivy entries on the Java Build Path back to using the cache, and then I noticed Eclipse was saying a few classpath entries wouldn't be exported, which corresponded to the Ivy entries. So I right-clicked them, clicked 'Quick Fix' in the context menu and said to mark them as export dependencies, and that worked. Still not sure why Eclipse/Ivy was behaving the way it was before, but it looks like I can actually deploy the sample application correctly and use it.