Ini akan muncul sebagai pertanyaan lama (yang mana :)) bahwa server mana yang lebih baik antara Tomcat dan JBoss, tapi saya belum menemukan jawaban yang cukup baik untuk menyelesaikan masalah saya.
Saya tahu bahwa Tomcat hanya mesin servlet dan JBoss menawarkan lebih banyak fungsi di luar kotak, tetapi apa yang saya gagal pahami adalah mengapa Tomcat lebih baik digunakan dalam beberapa situasi daripada jboss. Saya membaca di suatu tempat bahwa JBoss memiliki arsitektur pluggable dan jika diperlukan, Anda dapat mencabut fitur dari JBoss untuk membuatnya dasarnya sebuah wadah servom kucing jantan. Jika itu masalahnya, maka bukankah lebih baik melakukannya daripada menggunakan Tomcat, untuk meninggalkan ruang lingkup untuk memasukkan kembali hal-hal.
Penjelasan lain yang saya temukan dalam mendukung Tomcat adalah ringan, apakah itu berarti kebutuhan memori lebih sedikit atau apakah itu juga memungkinkan respons yang lebih cepat. Sekali lagi, saya perlu tahu bahwa tidak akan memuat komponen jboss sesuai kebutuhan yaitu jika saya hanya menggunakan servlets, maka jboss tidak akan melewatkan sisa fitur dan menjadi ringan secara otomatis.
Pada dasarnya, aplikasi saya tidak memiliki fitur Java EE, tetapi argumen 'ringan' yang mendukung Tomcat tidak terdengar cukup meyakinkan karena alasan yang disebutkan di atas.
Tolong bantu.
Sunting: Kami akhirnya memutuskan untuk menggunakan tomcat saat itu dan kami telah menggunakannya selama lebih dari 6 bulan sekarang dengan sangat mudah digunakan. Bahkan kami menemukan beberapa penggunaan praktis di mana kami dapat dengan mudah menjalankan beberapa instance kucing jantan pada mesin server yang sama untuk pengembang yang berbeda, hal yang sama bisa sangat sulit dengan jboss.
Saya telah menemukan bahwa kucing jantan tidak repot untuk pekerjaan kami dan karena itu mungkin menjadi pilihan yang tepat ketika Anda tidak menggunakan banyak fitur Java EE. PS: Harap dicatat bahwa kami masih menggunakan Spring dan Hibernate dengan Tomcat
Jawaban:
Pertama faktanya, tidak ada yang lebih baik . Seperti yang telah Anda sebutkan, Tomcat menyediakan wadah servlet yang mendukung spesifikasi Servlet (Tomcat 7 mendukung Servlet 3.0). JBoss AS, server aplikasi 'lengkap' mendukung Java EE 6 (termasuk Servlet 3.0) dalam versi saat ini.
Tomcat cukup ringan dan jika Anda memerlukan fitur Java EE tertentu di luar Servlet API, Anda dapat dengan mudah meningkatkan Tomcat dengan menyediakan perpustakaan yang diperlukan sebagai bagian dari aplikasi Anda. Misalnya, jika Anda memerlukan fitur JPA Anda dapat memasukkan Hibernate atau OpenEJB dan JPA bekerja hampir di luar kotak.
Cara memutuskan apakah akan menggunakan Tomcat atau
Java EE
server aplikasi tumpukan penuh :Saat memulai proyek Anda, Anda harus memiliki ide tentang apa yang diperlukan. Jika Anda berada di lingkungan perusahaan besar, JBoss (atau server Java EE lainnya) mungkin merupakan pilihan yang tepat karena menyediakan dukungan bawaan untuk misalnya:
Menurut pendapat saya, Tomcat sangat cocok jika menyangkut web centric, aplikasi yang dihadapi pengguna. Jika integrasi backend ikut bermain, server aplikasi Java EE harus (setidaknya) dipertimbangkan. Last but not least, memigrasikan PERANG yang dikembangkan untuk Tomcat ke JBoss harus menjadi latihan 1 hari.
Kedua, Anda juga harus mempertimbangkan penggunaan di dalam lingkungan Anda. Jika organisasi Anda sudah menjalankan 1.000 instance JBoss, Anda mungkin selalu setuju dengan itu terlepas dari persyaratan konkret Anda (pertimbangkan aspek-aspek seperti biaya untuk operasi atau peningkatan keterampilan). Tentu saja ini berlaku sebaliknya.
2 sen saya
sumber
Lihatlah TOMEE
Ini memiliki semua fitur yang Anda perlukan untuk membangun aplikasi Java EE yang lengkap.
sumber
Saya pasti akan melihat TomEE karena ide di belakang adalah untuk menjaga Tomcat membawa semua integrasi JavaEE 6 hilang secara default. Itu semacam kompromi yang sangat bagus
sumber
Sesungguhnya; Tanpa fitur Java EE, aplikasi Anda hampir tidak memerlukan server sama sekali ;-)
Seperti orang lain tunjukkan JBoss memiliki (lebih atau kurang) Java EE stack penuh sementara Tomcat adalah webcontainer saja. JBoss dapat dikonfigurasi untuk hanya berfungsi sebagai webcontainer juga, maka itu hanya akan menjadi pembungkus tipis di sekitar webcontainer tomcat yang disertakan. Dengan begitu Anda bisa memiliki JBoss yang hampir sama ringannya, yang sebenarnya hanya akan menjadi "bungkus" tipis di sekitar Tomcat. Itu hampir sama ringannya.
Jika Anda tidak membutuhkan tambahan apa pun yang ditawarkan JBoss, pilihlah yang paling nyaman bagi Anda. Yang mana yang paling mudah dikonfigurasi dan dirawat untuk Anda?
sumber
Saya juga telah membaca bahwa untuk beberapa server misalnya hanya perlu menjelaskan konteks kegigihan, tetapi di beberapa server, injeksi harus dilakukan secara manual.
sumber