I run this command but it won't work.
appcfg.cmd -A projectId -V 1 update appengine/build/war
Error Log
dhana@DESKTOP-VJFLGMK MINGW64 ~/Desktop/appinventor-sources/appinventor (master)
$ appcfg.cmd -A projectId -V 1 update appengine/build/war
********************************************************
There is a new version of the SDK available.
-----------
Latest SDK:
Release: 1.9.84
Timestamp: Mon Nov 16 13:30:56 IST 2020
API versions: [1.0]
-----------
Your SDK:
Release: 1.9.36
Timestamp: Fri Mar 18 02:55:24 IST 2016
API versions: [1.0]
-----------
Please visit https://developers.google.com/appengine/downloads for the latest SDK.
********************************************************
Jan 30, 2021 1:04:45 PM com.google.appengine.repackaged.com.google.api.client.extensions.java6.auth.oauth2.FileCredentialStore <init>
WARNING: unable to change file permissions for everybody: C:\Users\dhana\.appcfg_oauth2_tokens_java
Please enter code: 4/1AY0e-g7jAsPrTq6Q1uc5ZiYbgrUsy4z3u_6zoDBlsBW1cR5bFjN4Bym9324
Reading application configuration data...
Bad configuration: XML error validating <?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application></application>
<version>1</version>
<runtime>java8</runtime>
<!-- Configure serving/caching of GWT files -->
<static-files>
<include path="/companions/*" />
<include path="/about/*" expiration="1d" />
<include path="/static/**" />
<include path="/static/fonts/*" expiration="365d">
<http-header name="Content-Type" value="font/ttf" />
</include>
<include path="/websiteassets/**" expiration="10s" />
<include path="/Ya_tos_form.html" expiration="1d" />
<include path="/favicon.ico" expiration="365d" />
<include path="/templates/**" expiration="1d" />
<include path="/reference/**" expiration="1d" />
<include path="/robots.txt" expiration="30d" />
<!-- These are not cached on purpose -->
<include path="/ode/**.nocache.*" expiration="0s" />
<include path="/index.html" expiration="0s" />
<include path="/ode/**.cache.*" expiration="365d" />
<exclude path="/ode/**.gwt.rpc" />
<!-- don't serve the whitelist as a static file! -->
<exclude path="/whitelist" />
</static-files>
<!-- Permit sessions for location authentication -->
<!-- Not any more -->
<sessions-enabled>false</sessions-enabled>
<!-- Configuration and flags -->
<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
<!-- note that the file: is necessary as part of the value for this property, because
the log4j configuration is looking for a URL -->
<property name="log4j.configuration" value="file:WEB-INF/log4j.properties"/>
<!-- Set this to the IP Address or Host Name of the Rendezvous server.
If left as the empty string, the default in YaVersion is used, which
should be rendezvous.appinventor.mit.edu. Note: You can specify both
a name and a port using a colon to separate them. For example you can
use example.com:8888 to specify port 8888. Note: The rendezvous server
is assumed to be a path "/rendezvous/" on the server. So specifying
"example.com:8888" would mean the Rendezvous Server would be querired
on http://example.com:8888/rendezvous/. -->
<property name="use.rendezvousserver" value=""/>
<!-- set to true if users should not be allowed to access the App
Inventor server unless they are listed in the appengine/war/whitelist file -->
<property name="use.whitelist" value="false"/>
<!-- Name of storage bucket in Google Cloud Store -->
<property name="gcs.bucket" value="" />
<!-- Whether or not to use GCS for storage -->
<property name="use.gcs" value="true" />
<!-- set to true if users need to accept a Terms of Service the first time
they access App Inventor -->
<property name="require.tos" value="true" />
<!-- Flags that select authentication method
set auth.usegoogle to true to use Google Accounts
set auth.uselocal to permit local users (username is email address) and password.
If both are set, the login page will have a link to permit people to use
their Google Account.
It is an error for neither to be set. Instead of a login page, visitors
to the site will receive an error page.
-->
<property name="auth.usegoogle" value="true" />
<property name="auth.uselocal" value="true" />
<!-- Flags associated with localauth code -->
<property name="localauth.mailserver" value="https://osiris.mit.edu/passmail/" />
<property name="localauth.mailserver.password" value="changeme" />
<!-- host[:port] to use for connecting to the build server -->
<property name="build.server.host" value="localhost:9990" />
<!-- We provide below for a second buildserver. If this field is
non-empty then the user is presented a choice of two different
build servers. This feature was introduced to support building
against two different versions of the Android SDK. As of 8/1/2018
MIT is using this feature with the first buildserver building Apps
with a minSdk of 7 (but no targetSdk defined) to support older
devices. The second buildserver is configured with a minSdk of 14
and a targetSdk of 26 (along with the necessary component code
changes). This is required for new Apps submitted to the Google
Play Store. Having two buildservers provides us the flexibility to
support older devices while also ensuring that people can submit
MIT App Inventor created Apps to the Google Play Store.
-->
<!-- host[:port] to use for the second build server -->
<property name="build2.server.host" value="" />
<!-- host[:port] to tell build server the app host url to callback
when deploy AppInventor on other GAE implementation such as
AppScale.Keep it blank when deploy on GAE -->
<property name="appengine.host" value="" />
<!-- Interval is seconds between checking for a message of the day.
Set set to 0 to disable checking for a MOTD. If you do enable
MOTD checking, make the interval long, because this check is
resource expensive on App Engine -->
<property name="motd.check.interval.secs" value="0" />
<!-- Set this to false if we should not send the Git build version with build requests.
This is useful when testing new servers where we don't want to require the
buildserver to match -->
<property name="build.send.git.version" value="true" />
<!-- Session Management Variables. -->
<!-- We define three variables here.
All variables are defined in minutes
session.idletimeout - defines how long until an idle session
is considered invalid.
session.renew - defines the time after which a new session
cookie is generated.
session.noop - defines the time interval between no-op calls
from Ode. 0 means never perform a no-op (the default)
Note: If renew is > idletimeout, then people will get logged
out involuntarily after idletimeout because their session
will never renew and therefore is considered idle.
-->
<property name="session.idletimeout" value="120" />
<property name="session.renew" value="30" />
<property name="session.noop" value="0" />
<!-- Set this to true to enable the use of Wifi connections from the blocks editor to
the phone. The phone must have an up-to-date copy of the MIT AICompanion App to
use this feature. -->
<property name="wifi.enabled" value="true" />
<!-- Firebase Secret for the shared datastore -->
<property name="firebase.secret" value="" />
<property name="firebase.url" value="" />
<property name="library.url" value="http://appinventor.mit.edu/explore/library" />
<property name="get_started.url" value="http://appinventor.mit.edu/explore/get-started" />
<property name="tutorials.url" value="http://appinventor.mit.edu/explore/ai2/tutorials" />
<property name="extensions.url" value="http://appinventor.mit.edu/extensions" />
<property name="troubleshooting.url" value="http://appinventor.mit.edu/explore/ai2/support/troubleshooting" />
<property name="forums.url" value="https://community.appinventor.mit.edu" />
<property name="feedback.url" value="http://something.example.com" />
<property name="release.notes.url" value="http://appinventor.mit.edu/ai2/ReleaseNotes.html" />
<property name="tos.url" value="/about/termsofservice.html" />
<property name="logo.url" value="http://appinventor.mit.edu" />
<property name="guide.url" value="http://appinventor.mit.edu/explore/library" />
<property name="reference.components.url" value="/reference/components/" />
<!-- CloudDB secret keys -->
<property name="clouddb.server" value="clouddb.example.com"/>
<property name="clouddb.uuid.secret" value="changeme!"/>
<property name="clouddb.secret" value="changeme too!" />
<!-- This appears to be needed after a suspected change in how
POSTs work with URLFetch around 09/20/2018 -->
<property name="appengine.api.urlfetch.defaultDeadline" value="40"/>
<!-- Supported maximum size of a project, in MB -->
<!-- App Engine HTTP requests/responses are capped at 32 MB -->
<property name="project.maxsize" value="30"/>
<!-- So the calls to the buildserver can re-use connections -->
<property name="http.keepAlive" value="true" />
<property name="http.maxConnections" value="5" />
</system-properties>
<!-- Enable concurrency in the app engine server -->
<threadsafe>true</threadsafe>
</appengine-web-app>
against C:\AppEngine\appengine-java-sdk-1.9.36\docs\appengine-web.xsd
Caused by: cvc-complex-type.2.4.a: Invalid content was found starting with element '{"http://appengine.google.com/ns/1.0":runtime}'. One of '{"http://appengine.google.com/ns/1.0":source-language, "http://appengine.google.com/ns/1.0":module, "http://appengine.google.com/ns/1.0":service, "http://appengine.google.com/ns/1.0":instance-class, "http://appengine.google.com/ns/1.0":automatic-scaling, "http://appengine.google.com/ns/1.0":manual-scaling, "http://appengine.google.com/ns/1.0":basic-scaling, "http://appengine.google.com/ns/1.0":static-files, "http://appengine.google.com/ns/1.0":resource-files, "http://appengine.google.com/ns/1.0":system-properties, "http://appengine.google.com/ns/1.0":vm-settings, "http://appengine.google.com/ns/1.0":beta-settings, "http://appengine.google.com/ns/1.0":vm-health-check, "http://appengine.google.com/ns/1.0":health-check, "http://appengine.google.com/ns/1.0":resources, "http://appengine.google.com/ns/1.0":network, "http://appengine.google.com/ns/1.0":env-variables, "http://appengine.google.com/ns/1.0":ssl-enabled, "http://appengine.google.com/ns/1.0":sessions-enabled, "http://appengine.google.com/ns/1.0":async-session-persistence, "http://appengine.google.com/ns/1.0":user-permissions, "http://appengine.google.com/ns/1.0":public-root, "http://appengine.google.com/ns/1.0":inbound-services, "http://appengine.google.com/ns/1.0":precompilation-enabled, "http://appengine.google.com/ns/1.0":admin-console, "http://appengine.google.com/ns/1.0":static-error-handlers, "http://appengine.google.com/ns/1.0":warmup-requests-enabled, "http://appengine.google.com/ns/1.0":threadsafe, "http://appengine.google.com/ns/1.0":auto-id-policy, "http://appengine.google.com/ns/1.0":code-lock, "http://appengine.google.com/ns/1.0":vm, "http://appengine.google.com/ns/1.0":env, "http://appengine.google.com/ns/1.0":class-loader-config, "http://appengine.google.com/ns/1.0":url-stream-handler, "http://appengine.google.com/ns/1.0":use-google-connector-j, "http://appengine.google.com/ns/1.0":api-config}' is expected.
Please see the logs [C:\Users\dhana\AppData\Local\Temp\appcfg4721949423964930385.log] for further information.
C:\Users\dhana\AppData\Local\Temp\appcfg4721949423964930385.log file
appcfg4721949423964930385.txt (13.6 KB) (converted the file to txt format)