FAQ Runtime Java 8 App Engine

Pertanyaan berikut berlaku untuk runtime standar Java 8 App Engine.

Dapatkah saya menggunakan Kotlin dengan runtime Java 8?

Ya, lihat contoh Kotlin kami di repositori GitHub.

Dapatkah saya menggunakan IntelliJ IDEA Community Edition dengan App Engine?

Ya, menggunakan integrasi Maven bawaan.

Anda juga dapat menggunakan IntelliJ Ultimate Edition, yang menyediakan lebih banyak fitur pengembangan aplikasi web dan memiliki integrasi yang lebih erat dengan proses deployment App Engine.

Apakah App Engine Cloud Endpoints v1.0 berfungsi di runtime Java 8?

Tidak. Anda harus bermigrasi ke Cloud Endpoints Frameworks versi 2.0.

Mengapa saya mendapatkan java.lang.NoClassDefFoundError untuk class yang dikemas ulang?

Class internal yang dikemas ulang, seperti com/google/appengine/repackaged/com/google/common/collect/ImmutableList, tidak lagi tersedia di runtime Java 8, meskipun ditentukan dalam JAR App Engine API versi sebelumnya.

Jika Anda perlu menggunakan class yang dikemas ulang di aplikasi Java 8, tetapkan appengine.api.legacy.repackaging ke true dalam appengine-web.xml. Misalnya:

<system-properties>
  <property name="appengine.api.legacy.repackaging" value="true">
</system-properties>

Sebaiknya ganti class ini dengan class publik yang tidak dikemas ulang.

Bisakah saya melakukan pemisahan traffic antara Java 8 dan Java 11?

Ya, setiap versi layanan atau modul dapat menggunakan versi runtime yang berbeda, dan pemisahan traffic didukung.

Bagaimana thread Java 8 diperlakukan saat instance tidak mendapatkan permintaan?

Thread yang dibuat dengan App Engine API akan terus berfungsi seperti sebelumnya.

Dapat Menyesuaikan Kapasitas Secara Otomatis Penskalaan Manual Penskalaan Dasar
Instance dihentikan karena tidak ada permintaan. Instance dihentikan setelah permintaan terakhir (default: 5 menit) Berjalan selamanya.

Fitur server Metadata apa saja yang didukung di runtime App Engine Java 8?

Runtime App Engine Java 8 mendukung URL Server metadata berikut:

/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

Server Metadata v1beta1

Server Metadata v1beta1 tidak digunakan lagi dan dijadwalkan untuk dihentikan. Pastikan Anda memperbarui semua permintaan untuk menggunakan v1 atau yang lebih baru. Untuk mengetahui informasi selengkapnya, lihat Bertransisi ke endpoint server metadata v1.

/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

Mengapa permintaan saya gagal merespons?

Jika membuat kumpulan thread atas permintaan, Anda harus memastikan bahwa Anda telah menghentikannya secara eksplisit sebelum permintaan saat ini berakhir.