我跟着the documentation for using app.yaml with Java声称这应该有用,并且会自动生成web.xml
和appengine-web.xml
。但是,它似乎无法工作,也没有提到哪个工具会生成文件。
我首先尝试了mvn clean install
错误,因为.xml
文件丢失了:
[错误]无法执行目标org.apache.maven.plugins:maven-war-plugin:2.4: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
(顺便说一下,我从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
答案 0 :(得分:2)
这里有几个问题在起作用。我将描述组合在一起的各种事实,以创建一个SDK边缘案例的优势(此信息是SDK 1.9.21中的最新信息):
要使用Java SDK的appcfg.sh
进行部署,您需要在app.yaml
文件夹中包含war/WEB-INF/
。
appcfg.py
抱怨Unexpected attribute 'servlet' for object of type URLMap.
。
gcloud preview app deploy
使用appcfg.py
(或相同的代码库),因此也会以同样的方式投诉
因此,最后,您需要使用appcfg.sh