我在从serlvetJSP
提供的文件中使用以下代码。AppEngine
<script type="text/javascript" >
var role = <%= request.getAttribute("role") %>;
</script>
该变量是从Servlet
使用设置的:
req.setAttribute("role", role );
req.getRequestDispatcher("index.jsp").forward(req, resp);
该代码在 AppEngine 生产环境中运行良好,但在本地开发服务器中,我立即得到以下信息:
Problem accessing /. Reason:
INTERNAL_SERVER_ERROR
Caused by:
java.lang.StackOverflowError
at org.mortbay.jetty.servlet.Dispatcher$ForwardAttributes.setAttribute(Dispatcher.java:438)
at org.mortbay.jetty.servlet.Dispatcher$ForwardAttributes.setAttribute(Dispatcher.java:438)
at org.mortbay.jetty.servlet.Dispatcher$ForwardAttributes.setAttribute(Dispatcher.java:438)
at org.mortbay.jetty.servlet.Dispatcher$ForwardAttributes.setAttribute(Dispatcher.java:438)
at org.mortbay.jetty.servlet.Dispatcher$ForwardAttributes.setAttribute(Dispatcher.java:438)
at org.mortbay.jetty.servlet.Dispatcher$ForwardAttributes.setAttribute(Dispatcher.java:438)
at org.mortbay.jetty.servlet.Dispatcher$ForwardAttributes.setAttribute(Dispatcher.java:438)
这就像永远一样。在调试的时候,我还可以看到 Servlet 代码被调用了无数次。
我发现了一些关于 AppEngine 生产的类似问题的参考,但没有发现 AppEngine 开发服务器的可行修复。
任何想法 ??