在Google App Engine上的我的网络应用程序上重定向循环

时间:2015-01-15 06:03:34

标签: java jsp google-app-engine parse-platform

我试图在网站上搜索我的问题,但没有运气。

我创建了一个JSP Web应用程序并部署在Google App Engine上。它不使用Google帐户身份验证,而是使用Parse.com作为后端数据存储。 “login.jsp”是它的欢迎文件。当我在Firefox上点击GAE上的URL,例如“http:// {project-name} .appspot.com”时,它会显示:

The page isn't redirecting properly

Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

This problem can sometimes be caused by disabling or refusing to accept cookies.

我去了Firebug并发现“GET login.jsp”被自动调用超过20次。

当我尝试使用Chrome时,它返回了一条不同但相似的消息:

This webpage has a redirect loop

The webpage at http://{project-name}.appspot.com/login.jsp has resulted in too many redirects. Clearing your cookies for this site or allowing third-party cookies may fix the problem. If not, it is possibly a server configuration issue and not a problem with your computer.
Learn more about this problem.
Error code: ERR_TOO_MANY_REDIRECTS

有什么想法吗?

编辑--- login.jsp的代码如下

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
    <title>Log in</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.4/jquery.mobile-1.4.4.min.css" />
    <style>
    .alert-info {
        font-weight: bold;
        margin-bottom: 4px;
        padding: 8px 14px;
    }

    .full-layout { padding:2%; }
    </style>
    <script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.4.4/jquery.mobile-1.4.4.min.js"></script>
    <script type="text/javascript">
        $.mobile.ajaxEnabled = false;
    </script>
</head>

  <body>
  <div class="full-layout">
    <h1>Log in</h1>
    <% String alertMsg = (String) request.getSession().getAttribute("loginResultMsg");
        if (alertMsg != null) {
    %>
        <%= alertMsg %>     
    <% } %>
    <form action="LoginServlet" method="post">
        Name:<input type="text" name="name"><br>
        Password:<input type="password" name="password"><br>
        <input type="submit" value="Log in">
    </form>
    <%  request.getSession().setAttribute("loginResultMsg", null); %>
</div>
<%@include file="footer.jsp" %>
</body>
</html>

Firebug的网络控制台已记录:

GET login.jsp

,状态为“302 Found”。 “响应”是“重新加载页面以获取源代码:http:// {PROJECT_ID} .appspot.com / login.jsp”

奇怪的是,Web应用程序在本地开发环境中运行良好,但在GEA上部署时失败。

2 个答案:

答案 0 :(得分:0)

可以在GAE上执行重定向的峰值数量,即25.这是为了防止无限循环。

因此,如果您收到此错误,请确保您没有陷入ad-infinitum循环。

答案 1 :(得分:0)

我在网络应用中有一个SessionFilter。由于GAE不支持SessionFilter,因此删除此过滤器后,Web应用程序在GEA上运行良好。