Пример приложения playframework 1.2 выдает 505 при развертывании в google-appengine

Я создал образец приложения в playframework 1.2 и попытался развернуть его в google-appengine, развертывание не выявило проблем. но когда я нажимаю свое приложение, оно показывает ошибку 505.

когда я проверил журналы, я обнаружил, что он выдает ошибку, и, переходя к самой забавной части, он показывает исключение сервлета, да! play полностью не в мире сервлетов / jsp. почему это вызывает исключение сервлета?

Полная трассировка стека

Не удалось создать экземпляр прослушивателя play.server.ServletWrapper java.lang.ClassNotFoundException: play.server.ServletWrapper в com.google.appengine.runtime.Request.process-b8b4d374cb7c1344 (Request.java) в java.lang.ClassLoader. java: 266) на org.mortbay.jetty.handler.ContextHandler.loadClass (ContextHandler.java:1101) на org.mortbay.jetty.webapp.WebXmlConfiguration.initListener (WebXmlConfiguration.java:630) на org.mortbay.jet. .WebXmlConfiguration.initWebXmlElement (WebXmlConfiguration.java:368) в org.mortbay.jetty.webapp.WebXmlConfiguration.initialize (WebXmlConfiguration.java:289) в org.mortbay.jetty.webapp.WebXfigure.figure.WebXfigure.figure org.mortbay.jetty.webapp.WebXmlConfiguration.configureWebApp (WebXmlConfiguration.java:180) по адресу org.mortbay.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1247) по адресу org.mortbay.jetty.jetty.do.handler.handler. ContextHandler.java : 517) на org.mortbay.jetty.webapp.WebAppContext.doStart (WebAppContext.java:467) на org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:50) на com.google.tracing.TraceContext $ TraceContextRunnable. runInContext (TraceContext.java:449) в com.google.tracing.TraceContext $ TraceContextRunnable $ 1.run (TraceContext.java:455) в com.google.tracing.TraceContext.runInContext (TraceContext.java:695) в com.google. tracing.TraceContext $ AbstractTraceContextCallback.runInInheritedContextNoUnref (TraceContext.java:333) в com.google.tracing.TraceContext $ AbstractTraceContextCallback.runInInheritedContext (TraceContext.java:325) в com.google.tracing.Context (TraceContext. 453) на java.lang.Thread.run (Thread.java:679)

W 2012-06-06 14:32:23.044

ИСКЛЮЧЕНИЕ java.lang.ClassNotFoundException: play.server.ServletWrapper в com.google.appengine.runtime.Request.process-b8b4d374cb7c1344 (Request.java) в java.lang.ClassLoader.loadClass (ClassLoader.java:266) в .util.Loader.loadClass (Loader.java:91) в org.mortbay.util.Loader.loadClass (Loader.java:71) в org.mortbay.jetty.servlet.Holder.doStart (Holder.java:73) в org.mortbay.jetty.servlet.ServletHolder.doStart (ServletHolder.java:242) по адресу org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:50) по адресу org.mortbay.jetty.servlet.ServletHandler. java: 685) в org.mortbay.jetty.servlet.Context.startContext (Context.java:140) в org.mortbay.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1250) в org.mortbay.jetty.handler .ContextHandler.doStart (ContextHandler.java:517) в org.mortbay.jetty.webapp.WebAppContext.doStart (WebAppContext.java:467) в org.mortbay.component. AbstractLifeCycle.start (AbstractLifeCycle.java:50) в com.google.tracing.TraceContext $ TraceContextRunnable.runInContext (TraceContext.java:449) в com.google.tracing.TraceContext $ TraceContextRunnable $ 1.run (Trace5Context) atjava:45 com.google.tracing.TraceContext.runInContext (TraceContext.java:695) в com.google.tracing.TraceContext $ AbstractTraceContextCallback.runInInheritedContextNoUnref (TraceContext.java:333) в com.google.tracing.TraceContext $ AbstractConitedConitedContext. java: 325) в com.google.tracing.TraceContext $ TraceContextRunnable.run (TraceContext.java:453) в java.lang.Thread.run (Thread.java:679)

E 2012-06-06 14:32:23.045

Журнал javax.servlet.ServletContext: недоступен javax.servlet.UnavailableException: play.server.ServletWrapper в org.mortbay.jetty.servlet.Holder.doStart (Holder.java:79) в org.mortbay.jetty.servlet.ServletHolder.do (ServletHolder.java:242) на org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:50) на org.mortbay.jetty.servlet.ServletHandler.initialize (ServletHandler.java:685) на orjg.mortbay. servlet.Context.startContext (Context.java:140) в org.mortbay.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1250) в org.mortbay.jetty.handler.ContextHandler.doStart (ContextHandler.java:517) в org.mortbay.jetty.webapp.WebAppContext.doStart (WebAppContext.java:467) в org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:50) в com.google.apphosting.runtime.jetty.AppVersionHandlerHandlerHandlerHandler (AppVersionHandlerMap.java:202) на com.google.apphosting.runtime.jetty.AppVersionHandlerMa p.getHandler (AppVersionHandlerMap.java:171) по адресу com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest (JettyServletEngineAdapter.java:123) по адресу com.google.apphosting.runtime.JavaRuntime.JavaRuntime (JavaRuntime.javaRuntime.java: 477) в com.google.tracing.TraceContext $ TraceContextRunnable.runInContext (TraceContext.java:449) в com.google.tracing.TraceContext $ TraceContextRunnable $ 1.run (TraceContext.java:455) в com.google.tracing.TraceContext. runInContext (TraceContext.java:695) в com.google.tracing.TraceContext $ AbstractTraceContextCallback.runInInheritedContextNoUnref (TraceContext.java:333) в com.google.tracing.TraceContext $ com.google.tracing.TraceContext $ com.google.tracing.context. .tracing.TraceContext $ TraceContextRunnable.run (TraceContext.java:453) в com.google.apphosting.runtime.ThreadGroupPool $ PoolEntry.run (ThreadGroupPool.java:251) в java.lang.Thread.run (Thread.java:679 )

W 2012-06-06 14:32:23.092

Не удалось запустить контекст com.google.apphosting.utils.jetty.RuntimeAppEngineWebAppContext@15e00b7 {/, / base / data / home / apps / s ~ play-gae2 / 1.359439975758049816} java.lang.NullPointerException в java.lang.Class.romisAssignable (Собственный метод) на org.mortbay.jetty.servlet.ServletHolder.doStart (ServletHolder.java:256) на org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:50) на org.mortbay.jetty.servlet.Servlet. .initialize (ServletHandler.java:685) в org.mortbay.jetty.servlet.Context.startContext (Context.java:140) в org.mortbay.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1250) в org. mortbay.jetty.handler.ContextHandler.doStart (ContextHandler.java:517) по адресу org.mortbay.jetty.webapp.WebAppContext.doStart (WebAppContext.java:467) по адресу org.mortbay.component.AbstractLifeCycle.start (AbstractLife: 50) в com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler (AppVersionHandlerMap.jav a: 202) в com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler (AppVersionHandlerMap.java:171) в com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest (atjineServlet) .apphosting.runtime.JavaRuntime $ RequestRunnable.run (JavaRuntime.java:477) в com.google.tracing.TraceContext $ TraceContextRunnable.runInContext (TraceContext.java:449) в com.google.tracing.TraceContext $ TraceContextRunnable $ 1. TraceContext.java:455) в com.google.tracing.TraceContext.runInContext (TraceContext.java:695) в com.google.tracing.TraceContext $ AbstractTraceContextCallback.runInInheritedContextNoUnref (TraceContext.java:333) в com.google.tracing. $ AbstractTraceContextCallback.runInInheritedContext (TraceContext.java:325) в com.google.tracing.TraceContext $ TraceContextRunnable.run (TraceContext.java:453) в com.google.apphosting.runtime.ThreadGroupPool $ PoolEntry.run (ThreadGroupPool $ PoolEntry.run upPool.java:251) на java.lang.Thread.run (Thread.java:679)

C 2012-06-06 14:32:23.093

Неперехваченное исключение из сервлета javax.servlet.UnavailableException: ошибка инициализации. в com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler (AppVersionHandlerMap.java:211) в com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler (AppVersionHandlerMap.java.java.time1) .jetty.JettyServletEngineAdapter.serviceRequest (JettyServletEngineAdapter.java:123) по адресу com.google.apphosting.runtime.JavaRuntime $ RequestRunnable.run (JavaRuntime.java:477) по адресу com.google.tracing.Contime.java:477) по адресу com.google.tracing.Conrtextable.TraceContext $ : 449) в com.google.tracing.TraceContext $ TraceContextRunnable $ 1.run (TraceContext.java:455) в com.google.tracing.TraceContext.runInContext (TraceContext.java:695) в com.google.tracing.TraceContext $ AbstractTraceContextCallback .runInInheritedContextNoUnref (TraceContext.java:333) в com.google.tracing.TraceContext $ AbstractTraceContextCallback.runInInheritedContext (TraceContext.java:325) в com.google.tracing.TraceContext $ TraceContextRunnable.run (T raceContext.java:453) в com.google.apphosting.runtime.ThreadGroupPool $ PoolEntry.run (ThreadGroupPool.java:251) в java.lang.Thread.run (Thread.java:679)


person Rajesh Pantula    schedule 06.06.2012    source источник


Ответы (1)


Хотя Play не использует сервлеты, чтобы заставить Play работать в контейнерах J2EE, включая GAE, play использует оболочку сервлетов для маршрутизации запросов из контейнера J2EE в код Play.

Судя по полученному вами исключению, похоже, что эта оболочка сервлета Play недоступна. Вы развертываете его с помощью модуля GAE в Play? Это должно создать файл WAR и загрузить его непосредственно в GAE для вас. Это должно гарантировать, что все, что требуется, правильно скопировано.

person Codemwnci    schedule 07.06.2012
comment
вот как я это делаю. он создает войну в каталоге / tmp и загружает ее в appengine. - person Rajesh Pantula; 07.06.2012
comment
у вас есть правильный GAE SDK, Play поддерживает только 1.4 ... и на какой платформе вы работаете? У меня были проблемы с использованием Windows, но с Mac и Linux это работает довольно хорошо. - person Codemwnci; 07.06.2012
comment
я знаю, что он поддерживает только 1.4 sdk, и я делаю это в ubuntu. - person Rajesh Pantula; 08.06.2012