Die folgenden Fragen beziehen sich auf die App Engine-Java 8-Standardlaufzeit.
Kann ich Kotlin mit der Java 8-Laufzeit verwenden?
Ja, Kotlin-Beispiele finden Sie im GitHub-Repository.
Kann ich die IntelliJ IDEA Community Edition mit App Engine verwenden?
Ja, dies ist möglich, wenn Sie die eingebaute Maven-Integration nutzen.
Sie können auch die IntelliJ Ultimate Edition verwenden, die mehr Funktionen für die Entwicklung von Webanwendungen bietet. Außerdem ist diese Version enger mit dem App Engine-Entwicklungsprozess verknüpft.
Läuft Version 1 von App Engine Cloud Endpoints in der Java 8-Laufzeit?
Nein, Sie müssen zu Version 2.0 von Cloud Endpoints Frameworks migrieren.
Warum erhalte ich java.lang.NoClassDefFoundError für umgepackte Klassen?
Umgepackte interne Klassen wie com/google/appengine/repackaged/com/google/common/collect/ImmutableList
sind in der Java 8-Laufzeit nicht mehr verfügbar, auch wenn sie in früheren Versionen der App Engine API JAR definiert wurden.
Wenn Sie die umgepackten Klassen in Ihrer Java 8-Anwendung verwenden müssen, setzen Sie appengine.api.legacy.repackaging
in der appengine-web.xml
auf "true". Beispiel:
<system-properties>
<property name="appengine.api.legacy.repackaging" value="true">
</system-properties>
Es wird empfohlen, diese Klassen durch die öffentlichen, nicht umgepackten Klassen zu ersetzen.
Ist zwischen Java 8 und Java 11 eine Traffic-Aufteilung möglich?
Ja, in jeder Dienst- oder Modulversion kann eine andere Laufzeitversion verwendet werden und Traffic-Aufteilung wird unterstützt.
Wie werden Java-8-Threads behandelt, wenn eine Instanz keine Requests erhält?
Threads, die mit App Engine APIs erstellt wurden, funktionieren weiterhin wie zuvor.
Automatische Skalierung | Manuelle Skalierung | Einfache Skalierung |
---|---|---|
Instanz wird wegen Mangel an Requests beendet | Instanz wird nach dem letzten Request beendet (Standard: fünf Minuten) | Läuft endlos |
Welche Funktionen für Metadatenserver werden in der App Engine Java 8-Laufzeit unterstützt?
Die App Engine Java 8-Laufzeit unterstützt die folgenden Metadatenserver-URLs:
/computeMetadata/v1/project/numeric-project-id (pending)
/computeMetadata/v1/project/project-id
/computeMetadata/v1/instance/zone
/computeMetadata/v1/instance/service-accounts/default/aliases
/computeMetadata/v1/instance/service-accounts/default/email
/computeMetadata/v1/instance/service-accounts/default/scopes
/computeMetadata/v1/instance/service-accounts/default/token
/computeMetadata/v1/instance/service-accounts/{account}/aliases
/computeMetadata/v1/instance/service-accounts/{account}/email
/computeMetadata/v1/instance/service-accounts/{account}/scopes
/computeMetadata/v1/instance/service-accounts/{account}/token
Metadatenserver v1beta1
Der v1beta1-Metadatenserver ist veraltet und wird zum Herunterfahren eingeplant. Sorgen Sie dafür, dass Sie alle Anfragen für Version 1 oder höher aktualisieren. Weitere Informationen finden Sie unter Auf Metadaten-Server-Endpunkt v1 umstellen.
/computeMetadata/v1beta1/project/numeric-project-id (pending)
/computeMetadata/v1beta1/project/project-id
/computeMetadata/v1beta1/instance/zone
/computeMetadata/v1beta1/instance/service-accounts/default/aliases
/computeMetadata/v1beta1/instance/service-accounts/default/email
/computeMetadata/v1beta1/instance/service-accounts/default/scopes
/computeMetadata/v1beta1/instance/service-accounts/default/token
/computeMetadata/v1beta1/instance/service-accounts/{account}/aliases
/computeMetadata/v1beta1/instance/service-accounts/{account}/email
/computeMetadata/v1beta1/instance/service-accounts/{account}/scopes
/computeMetadata/v1beta1/instance/service-accounts/{account}/token
Warum antworten meine Anfragen nicht?
Wenn Sie bei einer Anfrage einen Threadpool erstellen, müssen Sie ihn ausdrücklich schließen, bevor die aktuelle Anfrage beendet wird.