FAQs zur App Engine Java 8-Laufzeit

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.