【问题标题】:HTTP ERROR: 503 Google App Engine - ClosedHTTP 错误:503 Google App Engine - 已关闭
【发布时间】:2017-01-12 16:23:42
【问题描述】:

我正在尝试在 Google 应用引擎上运行一个应用(应用正在使用 maven),所以我运行以下命令:

mvn appengine:update

返回:

...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 31.239 s
[INFO] Finished at: 2017-01-12T11:04:35-05:00
[INFO] Final Memory: 21M/422M
[INFO] ------------------------------------------------------------------------

然后

mvn appengine:devserver

返回

...
[INFO] INFO: The admin console is running at http://localhost:8080/_ah/admin
[INFO] Jan 12, 2017 11:06:05 AM com.google.appengine.tools.development.DevAppServerImpl doStart
[INFO] INFO: Dev App Server is now running

所以我认为构建正在正确更新,我也可以在线成功部署它。

但我仍然在 my_project.appspot.com 收到错误

当我尝试在本地运行我得到的同一个应用程序时(出于测试原因,无论是使用 mvn appengine:devserver 运行服务器还是在 eclipse 上运行它都一样):

我猜我的 web.xml 可能有错误,但我仔细检查并将其与 HelloWorldServlet 示例或留言簿示例进行比较,它看起来几乎相同,这里是:

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
  <servlet>
    <servlet-name>AdWords</servlet-name>
    <servlet-class>MyApp.adwords_axis.MainApp</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>AdWords</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>

这也是我要调用的类

package myApp.adwords_axis;

import java.io.IOException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("serial")
@WebServlet(name = "AdWords", value = "/")
public class MainApp extends HttpServlet{
      @Override
      public void doGet(HttpServletRequest request, HttpServletResponse response)
      {
      response.setContentType("text/plain");
      try {
        response.getWriter().println("Test");
        //run();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }  

      }


    public static void run() throws Exception {
        AdReport ads = new AdReport();
        GenderReport genderReport = new GenderReport();
        CriteriaReport criteriaReport = new CriteriaReport();

        ads.start();
        genderReport.start();
        criteriaReport.start();
    }
    //Add Audience before deploying beta.
}

我从示例中复制并将其放在 src/main/appengine 下的 app.yaml(在我执行 mvn appengine:update 时从未生成)如下所示:

runtime: java
env: flex

handlers:
- url: /.*
  script: this field is required, but ignored
  secure: always  # Require HTTPS

runtime_config:  # Optional
  jdk: openjdk7
  server: jetty9

manual_scaling:
  instances: 1

我错过了什么?

【问题讨论】:

    标签: java maven google-app-engine yaml google-cloud-platform


    【解决方案1】:

    好的,我通过十进制检查我的 web.xml 解决了这个问题。我有一个错字并破坏了整个应用程序。

    我的包在 web.xml 中以大写字母开头,这不应该。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-10
      • 1970-01-01
      • 2017-10-12
      • 1970-01-01
      • 2011-07-11
      • 2012-04-14
      • 2012-12-22
      相关资源
      最近更新 更多