1

playframework 1.2 でサンプル アプリケーションを作成し、それを google-appengine にデプロイしようとしましたが、デプロイに問題はありませんでした。しかし、アプリケーションを実行すると、505 エラーが表示されます。

ログを確認したところ、エラーがスローされていることがわかりました。面白いことに、サーブレットの例外が表示されています。play は完全にサーブレット/jsp の世界から外れています。なぜサーブレット例外をスローするのですか?

完全なスタック トレースは

java.lang.ClassLoader.loadClass(ClassLoader. java:266) org.mortbay.jetty.handler.ContextHandler.loadClass(ContextHandler.java:1101) で org.mortbay.jetty.webapp.WebXmlConfiguration.initListener(WebXmlConfiguration.java:630) で org.mortbay.jetty.webapp .WebXmlConfiguration.initWebXmlElement(WebXmlConfiguration.java:368) org.mortbay.jetty.webapp.WebXmlConfiguration.initialize(WebXmlConfiguration.java:289) org.mortbay.jetty.webapp.WebXmlConfiguration.configure(WebXmlConfiguration.java:222) org.mortbay の org.mortbay.jetty.webapp.WebXmlConfiguration.configureWebApp(WebXmlConfiguration.java:180)。jetty.webapp.WebAppContext.startContext(WebAppContext.java:1247) で 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(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(TraceContext.java:453) at java.lang.Thread.run(Thread.java:679)

W 2012-06-06 14:32:23.044

例外 java.lang.ClassNotFoundException: play.server.ServletWrapper at com.google.appengine.runtime.Request.process-b8b4d374cb7c1344(Request.java) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) at org.mortbay .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) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.servlet.ServletHandler.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(AbstractLifeCycle.java:50) の com.google.tracing .TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449) at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455) at 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 (TraceContext.java:453) java.lang.Thread.run(Thread.java:679) で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.TraceContext$TraceContextRunnable.run(TraceContext.java:453) ) java.lang.Thread.run(Thread.java:679) で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.TraceContext$TraceContextRunnable.run(TraceContext.java:453) ) java.lang.Thread.run(Thread.java:679) でorg.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) の doStart(WebAppContext.java:467) com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449) の com.google.tracing .TraceContext$TraceContextRunnable$1.run(TraceContext.java:455) at com.google.tracing.TraceContext.runInContext(TraceContext.java:695) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333) com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) で com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) で java.lang.Thread.run(Thread.java) :679)org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) の doStart(WebAppContext.java:467) com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449) の com.google.tracing .TraceContext$TraceContextRunnable$1.run(TraceContext.java:455) at com.google.tracing.TraceContext.runInContext(TraceContext.java:695) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333) com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) で com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) で java.lang.Thread.run(Thread.java) :679)50) com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449) で com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455) で com.google.tracing.TraceContext. com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333) の runInContext(TraceContext.java:695) com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) の com.google .tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) at java.lang.Thread.run(Thread.java:679)50) com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449) で com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455) で com.google.tracing.TraceContext. com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333) の runInContext(TraceContext.java:695) com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) の com.google .tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) at java.lang.Thread.run(Thread.java:679)com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333) の TraceContext.runInContext(TraceContext.java:695) com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) の com .google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) at java.lang.Thread.run(Thread.java:679)com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333) の TraceContext.runInContext(TraceContext.java:695) com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) の com .google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) at java.lang.Thread.run(Thread.java:679)

E 2012-06-06 14:32:23.045

javax.servlet.ServletContext ログ: 利用不可 javax.servlet.UnavailableException: org.mortbay.jetty.servlet.Holder.doStart の play.server.ServletWrapper(Holder.java:79) (ServletHolder.java:242) org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685) で org.mortbay.jetty.AbstractLifeCycle.start(AbstractLifeCycle.java:50) で。 org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) で org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) で servlet.Context.startContext(Context.java:140) org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) で org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) で com.google.apphosting.com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:171) の runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:202) com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest( JettyServletEngineAdapter.java:123) com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:477) com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449) com.google com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java: 333) com.google.tracing で。TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) at 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} の起動に失敗しました(ネイティブメソッド) org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256) で org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) で 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. org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) で org.mortbay.component で mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)。com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:202) の AbstractLifeCycle.start(AbstractLifeCycle.java:50) com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java: 171) com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123) で com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:477) で com.google.tracing .TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449) at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455) at com.google.tracing.TraceContext.runInContext(TraceContext.java:695) com.google.tracing.TraceContext$AbstractTraceContextCallback で。com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) の runInInheritedContextNoUnref(TraceContext.java:333) com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) の com.google .apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.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:171) で com.google.apphosting.runtime で.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123) com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(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.

4

1 に答える 1

0

Play はサーブレットを使用しませんが、Play を GAE を含む J2EE コンテナーで動作させるために、play はサーブレット ラッパーを使用して J2EE コンテナーから Play コードにリクエストをルーティングします。

取得している例外から、この Play サーブレット ラッパーは利用できないようです。Play 内で GAE モジュールを使用してデプロイしていますか? これにより、WAR ファイルが作成され、GAE に直接アップロードされます。これにより、必要なものがすべて正しくコピーされるようになります。

于 2012-06-07T08:08:02.510 に答える