Upgrade aplikasi Anda ke versi runtime yang didukung terbaru agar dapat terus menerima update keamanan dan memenuhi syarat untuk mendapatkan dukungan teknis.
Proses mengupgrade aplikasi yang ada bergantung pada versi runtime yang digunakan aplikasi Anda:
Java 8: Migrasikan aplikasi Anda ke versi Java terbaru yang didukung. Java 8 telah mencapai akhir dukungan pada 31 Januari 2024 dan akan dihentikan pada 31 Januari 2026. Setelah penghentian penggunaan, Anda tidak akan dapat men-deploy aplikasi Java 8, meskipun organisasi Anda sebelumnya menggunakan kebijakan organisasi untuk mengaktifkan kembali deployment runtime lama. Aplikasi Java 8 yang sudah ada akan terus berjalan dan menerima traffic setelah tanggal penghentiannya.
Java 11: Upgrade aplikasi Anda ke versi Java terbaru yang didukung. Java 11 telah mencapai akhir dukungan pada 31 Oktober 2024 dan akan dihentikan pada 31 Oktober 2025. Setelah penghentian penggunaan, Anda tidak akan dapat men-deploy aplikasi Java 11. Aplikasi Java 11 yang ada akan terus berjalan dan menerima traffic setelah tanggal penghentiannya.
Runtime generasi kedua yang didukung (Java 17 dan Java 21):
App Engine mendukung versi runtime Java generasi kedua, seperti Java 17 dan Java 21. Untuk mengupgrade ke Java 25 (pratinjau), lakukan langkah berikut:
Perbarui file
app.yamldengan menentukan versi Java yang Anda inginkan untuk menjalankan aplikasi. Contoh:runtime: javaVERSIONDengan VERSION adalah nomor versi
MAJOR. Misalnya, untuk menggunakan versi Java terbaru, Java 25 (pratinjau), tentukan25. Untuk mengetahui informasi selengkapnya, lihat Ringkasan runtime Java.Jika Anda menggunakan layanan paket lama, upgrade aplikasi Anda agar berjalan di salah satu dari:
Java Enterprise Edition 11 (E11): EE 11 tidak mendukung API
javax.servlet.*dan mengharuskan Anda memperbarui aplikasi dan dependensi pihak ketiga untuk menggunakan artefak Java yang lebih baru seperti namespaceJakarta. Java 25 (pratinjau) secara default berjalan di EE 11 dan tidak mendukung EE 10.Java Enterprise Edition 8 (EE 8): Java EE 8 memungkinkan Anda menggunakan API
javax.servlet.*, tetapi Anda harus melakukan perubahan konfigurasi kecil pada fileappengine-web.xml.
Mengupgrade ke versi Java yang didukung untuk layanan paket lama
Kompatibilitas runtime Java
Lihat tabel berikut untuk memahami versi Java yang kompatibel dengan versi servlet Anda. Untuk mengetahui detail selengkapnya tentang fitur titik entri, konfigurasi properti sistem, dukungan Jetty yang dihasilkan, dan Versi EE yang kompatibel, lihat Fitur Titik Entri.
| Enterprise Edition (EE) | Versi Java | Servlet | Kompatibilitas |
|---|---|---|---|
| EE7 | 11 | 2.5 atau 3.1 | Tidak ada dukungan komunitas untuk EE7. Java 11 telah mencapai akhir dukungan. Sebaiknya upgrade aplikasi Anda untuk menggunakan Java versi terbaru. |
| EE7 | 17 | 2.5 atau yang lebih baru | Tidak ada dukungan komunitas untuk EE7. Sebaiknya upgrade aplikasi Anda untuk menggunakan EE 8 dan versi yang lebih baru. |
| EE 8 | 17/21/25 (pratinjau) | 2.5 dan yang lebih baru | Java EE 8 kompatibel dengan Java EE6 dan yang lebih baru. Untuk mengetahui informasi selengkapnya, lihat Mengupgrade Java pada versi Enterprise Edition (EE) yang kompatibel. |
| EE 10 | 17/21 | 6.0 (default, direkomendasikan). Java 21 dikonfigurasi untuk menjalankan EE 10 secara default. | Untuk menggunakan Java EE 10, update servlet dan dependensi aplikasi Anda untuk menyertakan namespace Jakarta. Untuk mengetahui informasi selengkapnya, lihat Mengupgrade Java pada versi Enterprise Edition (EE) yang kompatibel. Anda tidak dapat menggunakan Java 25 (pratinjau) di EE10. |
| EE 11 | 25 | 6.1 (default, direkomendasikan). Java 25 (pratinjau) dikonfigurasi untuk menjalankan EE 11 secara default. | Untuk menggunakan Java EE 11, update servlet dan dependensi aplikasi Anda untuk menyertakan namespace Jakarta. Untuk mengetahui informasi selengkapnya, lihat Mengupgrade Java pada versi Enterprise Edition (EE) yang kompatibel. |
Mengupgrade Java di versi Enterprise Edition (EE) yang kompatibel
Untuk menggunakan Java 25 (pratinjau) di Enterprise Edition 11 (EE 11), atau Java 21 di Enterprise Edition 10 (EE 10), upgrade servlet dan dependensi aplikasi Anda di file
Maven dan Gradle untuk menyertakan namespace Jakarta:
Java 25 (pratinjau, EE 11)
Untuk menggunakan Java 25 (pratinjau) di Enterprise Edition 11 (EE 11), ikuti langkah-langkah berikut:
Ubah nomor versi di file konfigurasi
web.xmlAnda menjadiversion=6.1. Contoh:<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_1.xsd" version="6.1"> ... </web-app>Ganti nama servlet dan dependensi aplikasi Anda dari
javax.servlet.*menjadijakarta.servlet.*:import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @WebServlet(name = "viewer", urlPatterns = {"/view"}) public class MyServlet extends HttpServlet { ......Perbarui dependensi pihak ketiga aplikasi yang tersisa ke artefak Java yang lebih baru, bergantung pada namespace
Jakarta.Tambahkan properti sistem berikut di file
appengine-web.xmlAnda:<?xml version="1.0" encoding="utf-8"?> <appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <runtime>java25</runtime> <system-properties> <property name="appengine.use.EE11" value="true"/> </system-properties> <app-engine-apis>true</app-engine-apis> </appengine-web-app>Opsional: Java 25 menyertakan dukungan untuk thread virtual. Untuk mengaktifkan virtual thread, tambahkan properti
appengine.use.virtualthreadsdalam tagsystem-propertiesdi fileappengine-web.xmlAnda.
Java 21 (EE 10)
Untuk menggunakan Java 21 di Enterprise Edition 10 (EE 10), ikuti langkah-langkah berikut:
Ubah nomor versi di file konfigurasi
web.xmlAnda menjadiversion=6.0. Contoh:<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" version="6.0"> ... </web-app>Ganti nama servlet dan dependensi aplikasi Anda dari
javax.servlet.*menjadijakarta.servlet.*:import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @WebServlet(name = "viewer", urlPatterns = {"/view"}) public class MyServlet extends HttpServlet { ......Perbarui dependensi pihak ketiga aplikasi yang tersisa ke artefak Java yang lebih baru, bergantung pada namespace
Jakarta.Tambahkan properti sistem berikut di file
appengine-web.xmlAnda:<?xml version="1.0" encoding="utf-8"?> <appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <runtime>java21</runtime> <!-- or java17 --> <system-properties> <property name="appengine.use.EE10" value="true"/> </system-properties> <app-engine-apis>true</app-engine-apis> </appengine-web-app>Opsional: Java 21 menyertakan dukungan untuk thread virtual. Untuk mengaktifkan thread virtual, Anda menambahkan properti
appengine.use.virtualthreadsdalam tagsystem-propertiesdi fileappengine-web.xmlAnda.
Java 17 dan yang lebih baru (EE 8)
Gunakan API javax.servlet.* di Java EE 8 tanpa perubahan konfigurasi
aplikasi yang signifikan. EE 8 menawarkan kompatibilitas mundur untuk Java EE 6
dan yang lebih baru.
Untuk menjalankan aplikasi Anda di Java EE 8, deklarasikan tag
system-properties baru di file
appengine-web.xml
dengan konfigurasi app.engine.use.EE8 non-default:
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<runtime>java17</runtime>
<system-properties>
<property name="appengine.use.EE8" value="true"/>
</system-properties>
<app-engine-apis>true</app-engine-apis>
</appengine-web-app>
Opsional: Java versi 21 dan yang lebih baru menyertakan dukungan untuk thread virtual. Untuk mengaktifkan
thread virtual, tambahkan properti appengine.use.virtualthreads
dalam tag system-properties. Contoh:
<property name="appengine.use.virtualthreads" value="true"/>