Saya tahu bahwa saya bisa mengganti nama webapp saya (atau itu file PERANG) menjadi ROOT tetapi ini adalah cara yang mengerikan untuk melakukannya, IMHO. Sekarang saya memeriksa dokumen kucing jantan & katanya
Tidak dianjurkan untuk menempatkan elemen langsung di file server.xml
Jadi saya mencoba melakukannya dengan metode lain yang disarankan.
Elemen Konteks Individu dapat didefinisikan secara eksplisit: Dalam file individual di /META-INF/context.xml di dalam file aplikasi.
Jadi saya buat /META-INF/context.xml
dengan kode berikut,
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/"/>
Tetapi setelah penggelaran ketika saya me-restart server itu masih gagal memuat konteks di "/", itu masih memuatnya dengan "/<WEB_APP_NAME>"
Setiap petunjuk bermanfaat.
tomcat
tomcat7
root
context.xml
Chantz
sumber
sumber
Jawaban:
Yang dapat Anda lakukan adalah yang berikut;
Tambahkan file bernama
ROOT.xml
di<catalina_home>/conf/Catalina/localhost/
ROOT.xml ini akan mengesampingkan pengaturan default untuk konteks root dari instalasi kucing jantan untuk mesin dan host tersebut (Catalina dan localhost).
Masukkan berikut ini ke file ROOT.xml;
Di sini,
<yourApp>
adalah nama, yah, aplikasi Anda .. :)Dan begitulah, aplikasi Anda sekarang adalah aplikasi default dan akan muncul
http://localhost:8080
Namun, ada satu efek samping; aplikasi Anda akan dimuat dua kali. Sekali untuk
localhost:8080
dan sekali untuklocalhost:8080/yourApp
. Untuk memperbaikinya, Anda dapat meletakkan aplikasi Anda DI LUAR<catalina_home>/webapps
dan menggunakan jalur relatif atau absolut dalam tag docBase ROOT.xml. Sesuatu seperti ini;Dan kemudian semuanya baik-baik saja!
sumber
Berikut ini satu-satunya solusi yang bekerja untuk saya. Tambahkan ini ke simpul Host di conf / server.xml
sumber
server.xml
ataucontext.xml
? saya melihat tag xml<Context>
dicontext.xml
Di Tomcat 9.0, saya hanya perlu mengubah yang berikut di
server.xml
untuk
sumber
Kode kecil ini bekerja untuk saya, menggunakan host virtual
sumber
server.xml
? Menurut misal Ali.Mojtehedy di atas itu bermasalah. Juga, jawaban lain menyatakan bahwa/path/to
harus di luar jalur webapps normal.Paling cepat dan mungkin solusi terbaik adalah memiliki konten di bawah
<TOMCAT_INSTALL_DIR>/conf/Catalina/localhost/ROOT.xml
Dan aplikasi web Anda akan tersedia di
http://<host>:<port>/
sumber
Foobar
di/opt/tomcat/webapps/Foobar
. Saya mencoba mengatur docBaseFoobar
dan juga/opt/tomcat/webapps/Foobar
, tetapi ketika saya pergi ke `http: // <host>: <port> / Saya masih melihat beranda Tomcat alih-alih aplikasi Foobar saya. Saya bahkan memulai kembali Tomcat. Apa yang saya lakukan salah?Saya menghadapi masalah ini selama satu bulan, Menempatkan tag konteks di dalam server.xml tidak aman itu mempengaruhi elemen konteks penyebaran untuk semua host lain, untuk aplikasi besar butuh kesalahan koneksi juga isolasi yang tidak baik misalnya Anda dapat mengakses situs lain dengan nama folder domain2 .com / domain1Folder !! juga koneksi sesi basis data dimuat dua kali! cara lain adalah meletakkan file ROOT.xml yang memiliki tag konteks dengan path lengkap seperti:
di conf / catalina / webappsfoldername dan menyebarkan file perang sebagai ROOT.war di dalam webappsfoldername dan juga tentukan host seperti
Dalam pendekatan ini juga untuk aplikasi jenis yang sama sesi pengguna tidak memiliki isolasi yang baik! Anda mungkin di dalam app1 jika app1 sama dengan app2 Anda dapat setelah login dengan sesi sisi server secara otomatis dapat masuk ke app2 ?! Jadi, Anda harus menyimpan sesi pengguna di cache sisi klien dan tidak dengan jsessionid! kami dapat mengubah nama mesin dari localhost untuk menyelesaikannya. tetapi katakanlah bermain dengan kucing jantan membutuhkan lebih banyak waktu daripada bermain dengan kucing lain!
sumber
Tidak disarankan untuk memperbarui konfigurasi server seperti server.xml atau ROOT.xml.
Anda dapat meletakkan file konfigurasi context.xml di direktori META-INF aplikasi web Anda, dengan pengaturan jalur konteks disertakan. Ini akan menimpa pengaturan server default?
yaitu:
sumber
<Context docBase="yourAppName" path="" reloadable="true">
sumber
Tomcat 8: Setelah banyak pencarian, ini hanya kode yang berfungsi: di server.xml
Mulai ulang Tomcat, pastikan ketika Anda mengakses 127.0.0.1:8080, itu akan menampilkan konten di 127.0.0.1:8080/apple
Proyek saya adalah penyihir aplikasi web java yang dibuat oleh netbeans, saya menetapkan path konteks dalam konfigurasi proyek, tidak ada hal lain, bahkan saya meletakkan apple.war di folder webapps.
sumber
Bagi saya, kedua jawaban itu berhasil.
Catatan: ketika Anda mendeklarasikan docBase dalam konteks lalu abaikan appBase di Host.
ROOT.war
dan menempatkannya di bawah webapps. Jadi sekarang permintaan url yang tak tertandingi dari perang lain (konteks jalan) akan mendarat ke perang ini. Ini adalah cara yang lebih baik untuk menangani jalur konteks ROOT ("/ **").Opsi kedua adalah (dua kali lipat) memuat perang dari folder Webapps juga. Juga hanya perlu folder perang yang tidak terkompresi yang merupakan sakit kepala.
sumber
Di Tomcat 8.X, di bawah direktori home tomcat / conf / folder di server.xml Anda dapat menambahkan
<Context>
tag di bawah<Host>
tag seperti yang ditunjukkan di bawah ini. Tetapi Anda harus me-restart server agar dapat berlakuATAU jika Anda menggunakan Tomcat 7.X Anda dapat menambahkan file context.xml di folder WEB-INF di proyek Anda. Isi file yang saya gunakan adalah seperti yang ditunjukkan. dan itu bekerja dengan baik untuk saya. Anda tidak perlu me-restart server dalam hal ini.
sumber
localhost:8080/<Your App Directory Name>/
danlocalhost:8080/<your app path you wish>/
kedua 2 URL ini bekerja secara bersamaan. Ditemukan dua folder yang diekstrak di bawah$CATALINA_HOME/webapps/
.Solusi paling sederhana dan fleksibel adalah di bawah ini: Di dalam $ {Tomcat_home} /config/server.xml
Ubah autoDeploy = "false" deployOnStartup = "false" di bawah elemen Host seperti di bawah ini.
Tambahkan baris di bawah ini di bawah elemen Host .
Dengan pendekatan di atas kita dapat menambahkan sebanyak mungkin aplikasi di bawah webapps dengan nama jalur konteks yang berbeda.
sumber
Trik di bawah ini berhasil untuk saya.
1) Komentar / hapus konfigurasi di bawah ini dari file server.xml (di dalam folder conf) dari kucing jantan.
2) Hapus folder ROOT yang ada (Jika ada) yang berada di dalam folder webapp Tomcat. Dan ganti nama file perang Anda (mis .: test.war) menjadi ROOT.war.
Ingat bahwa saat mengganti nama file perang ke ROOT.war "ROOT" harus dalam huruf kapital.
Batasan: Anda hanya dapat menggunakan satu aplikasi di dalam satu instance kucing jantan.
sumber