2011-08-11 3 views
4

私はStackOverflowErrorsを経験しており、GAEのアプリケーションの最新バージョンに対するすべてのリクエストがあります。私はIssue #3588を追跡しましたが、記者が第三者の図書館にそれをしていると非難し、Googleのエンジニアはこれ以上見ることを望んでいなかったため閉鎖されました。私の場合、非難する第三者図書館はありません。私はちょうど非常に基本的なJSPを行っている:私のページのテンプレートに含まれています。なぜjsp:Google App EngineにStackOverflowErrorsを組み込む(時には)のはなぜですか?

記録されたエラーは次のように起動します:

java.lang.StackOverflowError 
at java.util.HashMap.removeEntryForKey(HashMap.java:565) 
at java.util.HashMap.remove(HashMap.java:555) 
at org.mortbay.util.AttributesMap.removeAttribute(AttributesMap.java:51) 
at org.mortbay.jetty.servlet.Dispatcher$ForwardAttributes.setAttribute(Dispatcher.java:441) 
at org.mortbay.jetty.servlet.Dispatcher$ForwardAttributes.removeAttribute(Dispatcher.java:461) 
at org.mortbay.jetty.servlet.Dispatcher$IncludeAttributes.setAttribute(Dispatcher.java:549) 
at org.mortbay.jetty.servlet.Dispatcher$IncludeAttributes.removeAttribute(Dispatcher.java:569) 
at org.mortbay.jetty.servlet.Dispatcher$IncludeAttributes.setAttribute(Dispatcher.java:549) 
at org.mortbay.jetty.servlet.Dispatcher$IncludeAttributes.removeAttribute(Dispatcher.java:569) 
at org.mortbay.jetty.servlet.Dispatcher$IncludeAttributes.setAttribute(Dispatcher.java:549) 
at org.mortbay.jetty.servlet.Dispatcher$IncludeAttributes.removeAttribute(Dispatcher.java:569) 

取得/ setAttributeメソッド、しばらくの間繰り返しを呼び出し、その後...

at org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:145) 
at com.google.apphosting.runtime.jetty.ResourceFileServlet.serveWelcomeFileAsForward(ResourceFileServlet.java:340) 
at com.google.apphosting.runtime.jetty.ResourceFileServlet.maybeServeWelcomeFile(ResourceFileServlet.java:281) 
at com.google.apphosting.runtime.jetty.ResourceFileServlet.doGet(ResourceFileServlet.java:142) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) 
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 
at org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:192) 
at 

そして、そのブロックも繰り返されます。

問題3588の記者と私は、これがjspに関係していると考えています。以前のバージョンのアプリケーションではjsp:includeが使用されていましたが、この新しいバージョンではjsp:paramとEL構文も使用されています。それらは問題に関連しているか、そうでないかもしれません。これはすべて開発中です。この問題は、GAEにデプロイした後にのみ現れます。この時点で、すべてのページ要求で500のサーバーエラーが発生し、ログにこのStackOverflowErrorが表示されます。記録されたスタックトレースのいずれも、どこにでも私のコードのどれも言及していません。

スタックトレースには、maybeServeWelcomeFileとserveWelcomeFileAsForwardも記述されています。この最新バージョンでweb.xmlのウェルカムファイル定義で変更されたものはありません。

Google検索で上記の問題は解決しましたが、他には何もありません。私の次のステップは、これを引き起こした正確な変更を切り離そうとしていますが、他の人が提供できる洞察は非常に役に立ちます。

+0

これは、JSP用にreq.getAttribute()/ setAttribute()を使用しているときにも発生します。http://stackoverflow.com/questions/11495170/appengine-development-server-gives-stackoverflowerror-in- jsp/11495569#11495569 –

答えて

2

このエラーは、jsp:サーバーに存在しないファイルが含まれているために発生します。 issue #5564を参照してください。 Google App Engine(アップデート:も参照してください。issue #5565も参照してください)にデプロイすると、自分の開発環境に存在する特定のファイルがアップロードされていません。

+0

これは古い解決策ですが、それは私を助けました。あなたのソリューションを共有してくれてありがとうIsaac。 – Neil

関連する問題