GAE 后端 - 进程已终止,因为它无法响应 HTTP 状态代码为 200-299 或 404 的启动请求



在Google App Engine Java中,我正在尝试运行后端,但我总是在后端日志中收到错误消息。

进程因无法响应启动请求而终止 HTTP 状态代码为 200-299 或 404。

应用引擎日志

2014-12-07 11:06:31.944 /_ah/start 302 4842ms 0kb instance=0 module=default version=testservice
0.1.0.3 - - [06/Dec/2014:21:36:31 -0800] "GET /_ah/start HTTP/1.1" 302 231 - - "0.testservice.testapp.appspot.com" ms=4842 cpu_ms=7626 cpm_usd=0.000026 loading_request=1 exit_code=107 instance=0 app_engine_release=1.9.16 

com.test.AppFilter doGet: Filter Initiated..!

此请求导致为您的应用程序启动一个新进程, 从而导致首次加载应用程序代码。 因此,此请求可能需要更长的时间,并且使用比典型请求更多的 CPU 请求您的申请。E 2014-12-05 11:02:16.916

进程因无法响应启动请求而终止 HTTP 状态代码为 200-299 或 404。

请帮忙。

当模块(或以前的版本:后端(启动时,Google App Engine 编排器会向 /_ah/start 发送 HTTP 请求。您可以使用此 HTTP 请求执行所需的任何初始化操作。

如日志消息中所述,此 HTTP 请求必须返回介于 200299(告知请求已正确处理(或 404 Not Found(告知您未将任何 servlet 或过滤器附加到此请求(之间的 HTTP 状态代码。

所有这些都在此页面的Google文档中进行了解释。

这里的答案是302 Redirect.这通常由重定向到身份验证屏幕的安全过滤器进行尝试。

如果定义了处理/_ah/start URL 的自定义安全过滤器或 servlet,请确保它返回200 HTTP 代码。

如果在此 URL 上设置了<security-constraint>(除了强制 SSL 之外(,请将其删除。

Process terminated because it failed to respond to the start request with an HTTP status code of 200-299 or 404.

上面的错误消息是导致预热或启动失败的任何内容的全部内容。基本上,如果/_ah/start 的 doGet 没有以这些 HTTP 状态代码之一完成,则会生成此错误。

在寻找根本原因时我不明白的是/_ah/start Servlet 在预热或上下文初始化 (CI( 过程完成之前没有首先(串行(完成。也就是说,上下文初始化作为启动 Servlet 的依赖项运行,这意味着如果它 (CI( 失败,整个启动将失败,从而生成上述消息。

不幸的是,该消息没有提供太多关于根本原因所在的说明。例如,如果您有上下文侦听器(例如注释为@WebListener(,并且 contextInitialized(ServletContextEvent sce( 方法未成功完成(崩溃,生成堆栈跟踪(,则该问题可能是此错误的根本原因。

查找问题的最简单方法是检查日志中是否有任何堆栈跟踪,从日志中的警告消息开始。也就是说,查看是否有任何启动、预热或上下文初始化代码崩溃。如果您发现问题,请修复它。

下面是在 Java-Gen2 旧版捆绑服务配置中工作的示例定义(修复上下文初始化问题后(。

@WebServlet(name = "StartUpHttpHandlerServlet", description = "Startup Http Handler Servlet", urlPatterns = {"/_ah/start"})
public class StartUpHttpHandlerServlet extends HttpServlet  {
        @Override
        public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {        
        
            resp.setStatus(200);
        }
     }
 }

本文档很好地描述了启动过程,但没有具体介绍可能导致上述错误消息的原因。

相关内容

  • 没有找到相关文章

最新更新