ninjaframework / ninja-appengine

Google App Engine support for Ninja Framework
Apache License 2.0
40 stars 21 forks source link

Unable to run quickstart app locally #25

Closed ntpz closed 6 years ago

ntpz commented 7 years ago

When I try to run quickstart archetype app, it builds and starts, but when I open http://localhost:8080 in my browser, i get HTTP ERROR: 404

Relevant part in the build log seems to be this:

[INFO] Apr 23, 2017 11:27:22 AM com.google.apphosting.utils.jetty.JettyLogger warn
[INFO] WARNING: failed com.google.appengine.tools.development.DevAppEngineWebAppContext@7e057f43{/,/home/testuser/testapp/target/testapp-1.0-SNAPSHOT}: java.lang.NoClassDefFoundError: java.util.Optional is a restricted class. Please see the Google  App Engine developer's guide for more details.
[INFO] Apr 23, 2017 11:27:22 AM com.google.apphosting.utils.jetty.JettyLogger warn
[INFO] WARNING: failed JettyContainerService$ApiProxyHandler@66982506: java.lang.NoClassDefFoundError: java.util.Optional is a restricted class. Please see the Google  App Engine developer's guide for more details.
[INFO] Apr 23, 2017 11:27:22 AM com.google.apphosting.utils.jetty.JettyLogger warn
[INFO] WARNING: Error starting handlers
[INFO] java.lang.NoClassDefFoundError: java.util.Optional is a restricted class. Please see the Google  App Engine developer's guide for more details.
[INFO]  at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:50)
[INFO]  at ninja.utils.NinjaModeHelper.determineModeFromSystemProperties(NinjaModeHelper.java:65)
[INFO]  at ninja.utils.NinjaModeHelper.determineModeFromSystemPropertiesOrProdIfNotSet(NinjaModeHelper.java:81)
[INFO]  at ninja.servlet.NinjaServletListener.getInjector(NinjaServletListener.java:104)
[INFO]  at com.google.inject.servlet.GuiceServletContextListener.contextInitialized(GuiceServletContextListener.java:47)
[INFO]  at ninja.servlet.NinjaServletListener.contextInitialized(NinjaServletListener.java:61)
[INFO]  at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
[INFO]  at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
[INFO]  at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
[INFO]  at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
[INFO]  at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
[INFO]  at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
[INFO]  at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
[INFO]  at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
[INFO]  at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
[INFO]  at org.mortbay.jetty.Server.doStart(Server.java:224)
[INFO]  at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
[INFO]  at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:268)
[INFO]  at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:284)
[INFO]  at com.google.appengine.tools.development.AutomaticInstanceHolder.startUp(AutomaticInstanceHolder.java:26)
[INFO]  at com.google.appengine.tools.development.AbstractModule.startup(AbstractModule.java:87)
[INFO]  at com.google.appengine.tools.development.Modules.startup(Modules.java:105)
[INFO]  at com.google.appengine.tools.development.DevAppServerImpl.doStart(DevAppServerImpl.java:262)
[INFO]  at com.google.appengine.tools.development.DevAppServerImpl.access$000(DevAppServerImpl.java:45)
[INFO]  at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:217)
[INFO]  at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:215)
[INFO]  at java.security.AccessController.doPrivileged(Native Method)
[INFO]  at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:215)
[INFO]  at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:349)
[INFO]  at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:47)
[INFO]  at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:222)
[INFO]  at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:213)

Steps to reproduce:

mvn -B  archetype:generate -DarchetypeGroupId=org.ninjaframework -DarchetypeArtifactId=ninja-appengine-blog-archetype -DgroupId=com.example -DartifactId=testapp -Dversion=1.0-SNAPSHOT -Dpackage=com.example
cd testapp
mvn appengine:devserver -Pdevserver

Full log available here

raphaelbauer commented 7 years ago

You have to use new App Engine Runtime for Java8 in order for this to work.

Check out: https://issuetracker.google.com/issues/35895687. You can sign up to get access...

ntpz commented 7 years ago

I see, thanks for the info. I signed up but that may take a while. Is there easy way to run ninja app on current app engine standard environment? Previous version (5.8.0) should work, right?

raphaelbauer commented 6 years ago

You have to add

<runtime>java8</runtime> 

to your appengine-web.xml.

https://cloud.google.com/appengine/docs/standard/java/runtime-java8

A PR would be very welcome!

c0debrain commented 6 years ago

thanks! done. I think this issue can be closed now.