如何在App Engine v1.9.18中将app.yaml与Java运行时一起使用?

Bli*_*ixt 5 java google-app-engine

我按照文档使用app.yaml与Java声称这应该工作,它将生成web.xmlappengine-web.xml自动生成.但是,它似乎不起作用,并没有提到将生成文件的工具.

我首先尝试了一个mvn clean install错误,因为.xml文件丢失:

[错误]无法执行目标org.apache.maven.plugins:maven-war-plugin:2.4:war(default-war)项目roger-analytics:组装WAR时出错:需要webxml属性(或预先存在的WEB- INF/web.xml如果在更新模式下执行) - > [帮助1]

然后我尝试运行本地开发服务器:

$ gcloud preview app run app.yaml
ERROR: (gcloud.preview.app.run) An error occurred while parsing file: [/Users/blixt/src/roger-api/module_analytics/app.yaml]
Unexpected attribute 'servlet' for object of type URLMap.
  in "/Users/blixt/src/roger-api/module_analytics/app.yaml", line 7, column 12
Run Code Online (Sandbox Code Playgroud)

(dev_appserver.py .顺便说一句,我得到同样的错误)

看来app.yaml毕竟不支持.我是否遗漏了某些内容,或者删除了支持而未更新文档?

这是我的app.yaml文件,它旨在作为我的Google Cloud App Engine项目中的模块运行(以及其他具有Python和Go运行时的模块):

module: analytics
runtime: java
api_version: 1

handlers:
- url: /*
  servlet: im.rgr.roger.RogerAnalytics
  login: admin
  secure: always

system_properties:
  java.util.logging.config.file: WEB-INF/logging.properties
Run Code Online (Sandbox Code Playgroud)

Nic*_*ick 2

这里有几个问题。我将描述各种事实,这些事实组合在一起创建了一系列 SDK 边缘案例优点(此信息截至 SDK 1.9.21 为止是最新的):

  • 为了使用Java SDK进行部署appcfg.sh,您需要拥有app.yamlwar/WEB-INF/文件夹。

  • appcfg.py抱怨Unexpected attribute 'servlet' for object of type URLMap.

  • gcloud preview app deploy使用appcfg.py(或相同的代码库),因此也以相同的方式抱怨


所以,总而言之,您需要使用appcfg.sh