【发布时间】: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