Jika bermigrasi ke versi Java terbaru yang didukung dan aplikasi Anda tidak menggunakan layanan paket lama, Anda harus memaketkan ulang aplikasi web App Engine Anda menjadi file JAR yang dapat dieksekusi.
Aplikasi Anda harus memiliki class Main yang memulai server web yang merespons
permintaan HTTP di port 8080, yang mungkin ditentukan oleh variabel lingkungan PORT.
Contoh:
Contoh migrasi WAR (Java 21)
Petunjuk berikut menunjukkan cara memaketkan ulang aplikasi WAR hello-world App Engine
sebagai JAR untuk dijalankan di runtime Java 21.
Migrasi menggunakan artefak appengine-simple-jetty-main. Tindakan ini akan menyediakan
class Main dengan server web Jetty sederhana yang memuat file WAR dan memaketkan
aplikasi Anda ke dalam file JAR yang dapat dieksekusi:
Clone artefak Jetty Server Tersemat ke komputer lokal Anda:
git clone https://github.com/GoogleCloudPlatform/java-docs-samplesAtau, Anda dapat mendownload contoh sebagai file ZIP dan mengekstraknya.
Ubah ke direktori yang berisi kode contoh:
cd java-docs-samples/flexible/repacking-legacy-applications/appengine-simple-jetty-main/Bangun JAR peluncur Jetty:
mvn installTindakan ini akan menghasilkan
jetty-jar-with-dependencies.jardi direktoritarget/Anda.Konfigurasi file build
pom.xmluntuk server Jetty:- Properti compiler (Java 21):
- Dependensi Jetty tersemat:
- Konfigurasi
maven-assembly-plugin:
Tempatkan
jetty-jar-with-dependencies.jaryang dihasilkan dan file WAR aplikasi Anda. Misalnya,helloworld.wardi direktori yang sama.Buat file
app.yamldi direktori aplikasi Anda untuk menentukan runtime Java 21 dan elemenentrypointuntuk memanggil filejetty-jar-with-dependencies.jardan meneruskan file WAR Anda sebagai argumen:runtime: java21 entrypoint: 'java -jar jetty-jar-with-dependencies.jar helloworld.war'Untuk menjalankan aplikasi Anda secara lokal:
Mulai server dengan file WAR Anda sebagai argumen:
java -jar jetty-jar-with-dependencies.jar helloworld.warDi browser web, masukkan alamat berikut:
Untuk men-deploy aplikasi Anda:
alat gcloud
gcloud app deploy
Plugin Maven
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Ganti PROJECT_ID dengan ID project Google Cloud Anda. Jika file
pom.xmlsudah menentukan project ID , Anda tidak perlu menyertakan properti-Dapp.deploy.projectIddalam perintah yang dijalankan.