I followed the documentation for using app.yaml with Java which claims that this should work and that it will generate web.xml
and appengine-web.xml
automatically. However, it doesn't seem to work and it doesn't mention which tool will generate the files.
I first tried a mvn clean install
which errors out because the .xml
files are missing:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.4:war (default-war) on project roger-analytics: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]
I then tried to run the local development server:
$ 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
(I get the same error from dev_appserver.py .
by the way)
It appears that app.yaml
isn't supported after all. Am I missing something, or was support removed without updating the documentation?
Here's my app.yaml
file, which is intended to run as a module in my Google Cloud App Engine project (along with other modules that have Python and Go runtimes):
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
There are several issues at play here. I'll describe various facts that group together to create a constellation of SDK edge-case goodness (this information is current as of SDK 1.9.21):
In order to deploy using the Java SDK's appcfg.sh
, you'll need to have app.yaml
inside the war/WEB-INF/
folder.
appcfg.py
complains Unexpected attribute 'servlet' for object of type URLMap.
.
gcloud preview app deploy
uses appcfg.py
(or the same codebase) and therefore also complains in the same manner
So, in conclusion, you'll need to use appcfg.sh
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With