Saya mengedit file "server.xml" di conf
folder Tomcat 8 . Saya menambahkan Host
tag baru untuk situs web baru.
Haruskah saya memulai kembali server Tomcat?
Bisakah saya membuat Tomcat menguraikan dan menerapkan yang baru diedit server.xml
?
configuration
tomcat
Basil Bourque
sumber
sumber
<Host>
, tidak<Context>
.server.xml
diurai sekali saat startup. Itu tidak dapat dimuat ulang tanpa restart.Jawaban:
Saya akan mulai dengan mengatakan bahwa pertanyaannya tidak sepenuhnya dibuat dengan benar, karena sangat mungkin untuk benar-benar mengedit file tanpa me-restart Tomcat, tetapi perubahannya diabaikan oleh proses yang berjalan.
Pertanyaan sebenarnya adalah bagaimana menerapkan perubahan
server.xml
tanpa memulai ulang Tomcat.Mengumpulkan informasi dari proses permulaan dan halaman pemuat kelas pada dokumentasi online Tomcat, dimungkinkan untuk memahami ini secara lebih rinci.
Lebih khusus, dijelaskan di serverStartup.txt dan diagram UML dari proses startup dan bagian-bagian yang relevan dapat diringkas sebagai berikut:
Ini terjadi setelah penciptaan classloader Bootstrap dari mesin servlet (Catalina).
Dengan informasi ini, jelas sekarang ketika dalam proses startup
server.xml
file diurai, tetapi tidak benar-benar menjawab pertanyaan mengapa diperlukan untuk memulai kembali Tomcat untuk menerapkan perubahan pada file ini.Jawabannya adalah bahwa beberapa bagian dapat dimodifikasi secara dinamis saat runtime menggunakan JMX . Agar hal ini dimungkinkan, MBean yang sesuai harus didaftarkan (b6 langkah di atas), dan juga harus menerima operasi SET (beberapa MB hanya memiliki antarmuka GET).
Dalam kasus spesifik Anda, tidak ada cara untuk membuat dan mendaftarkan Host baru pada saat runtime karena tidak ada ketentuan untuk itu, dan ini adalah alasan mengapa Anda harus memulai kembali proses Tomcat untuk membuat bootloader classloader instantiate objek itu dan mendaftarkannya dengan Agen JMX.
Setelah itu, dimungkinkan untuk memodifikasi host itu dari klien JMX seperti
jconsole
yang dibundel dengan JDK apa pun.Hubungkan Anda
jconsole
ke Tomcat yang diaktifkan JMX dan telusuri Host MBean untuk memeriksa semua atribut yang tersedia:dan periksa semua operasi yang tersedia (salah satunya ditunjukkan di bawah sebagai contoh):
sumber
Tidak. Mulai ulang diperlukan.
Halaman dokumen Tomcat untuk
<Context>
menyebutkan:sumber
we’re talking about <Host>, not <Context>.
-1 maaf, jarang saya melakukan ini, tetapi saya harus ...