Saya mencoba untuk mengubah aplikasi default dari server web Tomcat 6 ke aplikasi yang berbeda dari "ROOT" (di dalam folder webapps). Apa cara terbaik untuk melakukan ini?
Ada tiga metode:
Pertama, matikan Tomcat Anda dari bin
direktori ( sh shutdown.sh
). Kemudian hapus semua konten Tomcat Andawebapps
folder ( rm -fr *
). Kemudian ganti nama file WAR Anda ROOT.war
, dan akhirnya mulai Tomcat Anda dari bin
direktori ( sh startup.sh
).
Tinggalkan file perang Anda di $CATALINA_BASE/webapps
bawah nama aslinya. Matikan
autoDeploy dan deployOnStartup di elemen Host Anda di server.xml
file. Tetapkan secara eksplisit semua Konteks aplikasi dalam server.xml
, yang menentukan kedua jalur atribut
dan docBase . Anda harus melakukan ini karena Anda telah menonaktifkan semua mekanisme auto-deploy Tomcat, dan Tomcat tidak akan menyebarkan aplikasi Anda lagi kecuali ia menemukan Konteksnya di server.xml
.
Metode kedua: untuk membuat perubahan pada aplikasi apa pun, Anda harus berhenti dan memulai kembali Tomcat.
Tempatkan file WAR Anda di luar $CATALINA_BASE/webapps
(itu harus di luar untuk mencegah penyebaran ganda). Tempatkan file konteks bernama ROOT.xml
di $CATALINA_BASE/conf/
. Elemen tunggal dalam file konteks ini HARUS memiliki
atribut docBase yang menunjuk ke lokasi file WAR Anda. Elemen path tidak boleh disetel - itu berasal dari nama .xml
file, dalam hal ini ROOT.xml
. Lihat dokumentasi untuk wadah Konteks untuk detailnya.
$CATALINA_BASE/conf/[enginename]/[hostname]
direktori (yang untuk pengaturan dasar saya adalah$CATALINA_HOME/conf/Catalina/localhost
). Lihat dokumentasi Context Container .sudo systemctl start tomcatx
manax
merupakan nomor versiMenambahkan
<Context>
tag pada<Host>
tag inserver.xml
untuk Tomcat 6 akan menyelesaikan masalah.Jika Anda menggunakan
path=""
kosong, Anda dapat menggunakan URL sepertihttp://localhost/first.do
.Di tag konteks atur atribut
docBase="E:\struts-ITRCbook\myStrutsbook"
danreloadable="true"
, lalu akhiri tag konteks.Seharusnya terlihat seperti ini:
sumber
Di Tomcat 7 dengan perubahan ini, saya dapat mengakses
myAPP
di/
danROOT
di/ROOT
Tambahkan di atas ke
<Host>
bagian di server.xmlsumber
/ROOT
dan mencoba masuk ke halaman Manajer menggunakan kredensial yang benar, saya ditolak aksesnya. Apakah Anda tahu cara memperbaikinya?Aplikasi default ROOT biasanya Tomcat Manager - yang dapat berguna jadi saya ingin menyimpannya.
Jadi cara saya membuat ROOT aplikasi saya dan menjaga TCmgr seperti ini.
berganti nama menjadi ROOT menjadi sesuatu yang lain
kemudian membuat tautan simbolis di mana ROOT menunjuk ke aplikasi yang ingin saya jadikan default.
bekerja untuk saya dan tampaknya pendekatan yang paling mudah.
sumber
Menurut dokumentasi Apache Tomcat, Anda dapat mengubah aplikasi dengan membuat file ROOT.xml. Lihat ini untuk info lebih lanjut:
http://tomcat.apache.org/tomcat-6.0-doc/config/context.html
"Aplikasi web default dapat didefinisikan dengan menggunakan file yang disebut ROOT.xml."
sumber
Anda dapat melakukan ini dengan cara yang sedikit diretas dengan:
sumber
Solusi alternatif adalah membuat servlet yang mengirim pengalihan ke webapp default yang diinginkan dan memetakan servlet ke semua url di webapp ROOT.
Tambahkan kelas di atas ke
CATALINA_BASE/webapps/ROOT/WEB-INF/classes/com/example/servlet
.Dan tambahkan yang berikut ini ke
CATALINA_BASE/webapps/ROOT/WEB-INF/web.xml
:Dan jika diinginkan Anda dapat dengan mudah memodifikasi RedirectServlet untuk menerima param init untuk memungkinkan Anda mengatur webapp default tanpa harus memodifikasi sumbernya.
Saya tidak yakin apakah melakukan ini akan memiliki implikasi negatif, tetapi saya memang menguji ini dan sepertinya berhasil.
sumber
konfigurasi context.xml tidak berfungsi untuk saya. Tomcat 6.0.29 mengeluh tentang docBase yang berada di dalam appBase: ... Untuk Tomcat 5 ini benar-benar berfungsi.
Jadi salah satu solusinya adalah dengan meletakkan aplikasi di folder ROOT.
Solusi lain yang sangat sederhana adalah dengan meletakkan index.jsp ke ROOT yang mengalihkan ke aplikasi saya seperti ini: response.sendRedirect ("/ MyApplicationXy");
Salam, Jan
sumber
Saya punya masalah ketika mengkonfigurasi Tomcat '
server.xml
dan menambahkan elemen Konteks. Dia hanya tidak ingin menggunakan konfigurasi saya: http://www.oreillynet.com/onjava/blog/2006/12/configuration_antipatterns_tom.htmlJika Anda berada dalam suatu
Unix-like
sistem:mv $CATALINA_HOME/webapps/ROOT $CATALINA_HOME/webapps/___ROOT
ln -s $CATALINA_HOME/webapps/your_project $CATALINA_HOME/webapps/ROOT
Selesai
Bekerja untukku.
sumber
Cara terbaik untuk mengubah aplikasi root tomcat. Diuji pada Tomcat 7 dan 8.
Pindah ke direktori webapp tomcat:
Contoh di mesin saya:
~/stack/apache-tomcat/webapps
Ganti nama, ganti atau hapus folder ROOT. Saran saya adalah mengganti nama atau membuat salinan untuk cadangan. Contoh, ganti nama ROOT menjadi RENAMED_ROOT:
mv ROOT RENAMED_ROOT
Pindahkan file perang dengan aplikasi Anda ke direktori webapp tomcat (ini adalah direktori tempat folder ROOT lama, di komputer saya: ~ / stack / apache-tomcat / webapps)
sumber
Saya akan melihat dokumen saya; ada cara menentukan konfigurasi untuk mengubah jalur aplikasi web root dari ROOT (atau ROOT.war), tetapi tampaknya telah berubah antara Tomcat 5 dan 6.
Menemukan ini:
http://www.nabble.com/Re:-Tomcat-6-and-ROOT-aplikasi ...-td20017401.html
Jadi, tampaknya mengubah jalur root (di ROOT.xml) dimungkinkan, tetapi agak rusak - Anda harus memindahkan PERANG di luar direktori penyebaran otomatis. Keberatan jika saya bertanya mengapa hanya mengganti nama file Anda ke ROOT.war bukan solusi yang bisa diterapkan?
sumber
Bukan solusi yang sangat bagus tetapi salah satu caranya adalah dengan mengarahkan dari aplikasi ROOT ke YourWebApp. Untuk ini, Anda perlu memodifikasi ROOT index.html.
ATAU
Referensi: http://staraphd.blogspot.com/2009/10/change-default-root-folder-in-tomcat.html
sumber
Di Tomcat 7 (di bawah server Windows) saya tidak menambahkan atau mengedit apa pun ke file konfigurasi apa pun. Saya baru saja mengganti nama folder ROOT ke sesuatu yang lain dan mengganti nama folder aplikasi saya menjadi ROOT dan berfungsi dengan baik.
sumber