Tomcat هو مشروع أساسي في مشروع جاكرتا لمؤسسة Apache Software Foundation، وقد تم تطويره بشكل مشترك بواسطة Apache وSun وشركات وأفراد آخرين، نظرًا لمشاركة Sun ودعمها، يمكن دائمًا أن تنعكس أحدث مواصفات Servlet وJSP في Tomcat. نظرًا لأن Tomcat يتمتع بتكنولوجيا متقدمة وأداء مستقر ومجاني، فقد أصبح محبوبًا للغاية من قبل عشاق Java ومعترف به من قبل بعض مطوري البرامج، وقد أصبح خادم تطبيقات ويب شائعًا ويحظى بشعبية كبيرة موارد النظام عند التشغيل، تتمتع بقابلية توسع جيدة، وتدعم الوظائف الشائعة الاستخدام في أنظمة تطبيقات التطوير، مثل موازنة التحميل وخدمات البريد الإلكتروني، ويتم تحسينها وتحسينها باستمرار ويمكن لأي شخص مهتم بالمبرمجين تغييرها أو إضافة وظائف جديدة إليها.
أباتشي تومكات الإصدار 6.0.20 ملاحظات الإصدار
====================== المشكلات المعروفة في هذا الإصدار: ======================
* تغييرات التبعية * التطبيقات المستندة إلى JNI * واجهات برمجة التطبيقات المجمعة * إعادة تحميل تطبيقات الويب والحقول الثابتة في المكتبات المشتركة * Tomcat على نظام Linux * تمكين دعم SSI وCGI * عناوين URL لمدير الأمن * ربط الموارد الثابتة * تمكين servlet المستدعي * عرض سجل تغيير Tomcat * عندما يفشل كل شيء آخر
==================================================================== تغييرات التبعية: ==================================================================== تم تصميم Tomcat 6.0 ليعمل على JSE 5.0 والإصدارات الأحدث.
بالإضافة إلى ذلك، يستخدم Tomcat 6.0 مترجم Eclipse JDT Java للتجميع صفحات JSP وهذا يعني أنك لم تعد بحاجة إلى الحصول على الملف الكامل Java Development Kit (JDK) لتشغيل Tomcat، ولكن بيئة تشغيل Java (JRE) كافٍ لمترجم Java Eclipse JDT مع ملف يمكن أيضًا تكوين توزيعات Tomcat الثنائية لاستخدام مترجم من JDK لتجميع JSPs، أو أي مترجم Java آخر مدعوم بواسطة أباتشي النمل.
======================================================================== التطبيقات المستندة إلى JNI: ======================================================================== يجب أن تتأكد التطبيقات التي تتطلب مكتبات أصلية من توفر المكتبات تم تحميله قبل الاستخدام عادةً، ويتم ذلك من خلال استدعاء مثل:
ثابت { System.loadLibrary("المسار إلى ملف المكتبة"); }
ومع ذلك، في بعض الفصول الدراسية، يجب أن يضمن التطبيق أيضًا أن المكتبة لا يتم تحميله أكثر من مرة إذا تم وضع الكود أعلاه في الفصل بداخله تطبيق الويب (أي ضمن /WEB-INF/classes أو /WEB-INF/lib)، و تم إعادة تحميل التطبيق، وستتم محاولة استدعاء LoadLibrary() لمدة ثانية وقت.
لتجنب هذه المشكلة، قم بوضع الفئات التي تقوم بتحميل المكتبات الأصلية خارج نطاق تطبيق ويب، وتأكد من تنفيذ استدعاء LoadLibrary() مرة واحدة فقط خلال عمر JVM معين.
يمكنك إتاحة واجهات برمجة التطبيقات الإضافية لجميع تطبيقات الويب الخاصة بك عن طريق وضع الفئات التي تم فك حزمتها في دليل "الفئات" (لا يتم إنشاؤه افتراضيًا)، أو عن طريق وضعها في ملفات JAR في الدليل "lib".
لتجاوز تطبيق أو واجهات محلل XML، استخدم آلية JVM يحدد التكوين الافتراضي ملفات JAR الموجودة في "أيد" كما أيد.
================================================================================================== ============= إعادة تحميل تطبيق الويب والحقول الثابتة في المكتبات المشتركة: ================================================================================================== ============= تحتفظ بعض المكتبات المشتركة (العديد منها جزءًا من JDK) بمراجع للكائنات تم إنشاء مثيل لها بواسطة تطبيق الويب لتجنب المشكلات المتعلقة بتحميل الفصل (ClassCastExceptions، رسائل تشير إلى أن أداة تحميل الفئة تم إيقافه، وما إلى ذلك)، يجب إعادة تهيئة حالة المكتبات المشتركة.
الشيء الذي قد يساعد هو تجنب وضع الفصول الدراسية التي قد تكون تمت الإشارة إليه بواسطة حقل ثابت مشترك في أداة تحميل تطبيقات الويب، ووضعها في أداة تحميل الفصل المشتركة بدلاً من ذلك (يجب وضع ملفات JAR في ملف مجلد "lib"، ويجب وضع الفئات في مجلد "الفئات").
=============== Tomcat على نظام Linux: =============== يجب على مستخدمي GLIBC 2.2 / Linux 2.4 تحديد متغير البيئة: تصدير LD_ASSUME_KERNEL=2.2.5
يجب على مستخدمي Redhat Linux 9.0 استخدام الإعداد التالي لتجنب ذلك مشاكل الاستقرار: تصدير LD_ASSUME_KERNEL=2.4.1
تم الإبلاغ عن بعض الأخطاء في Linux فيما يتعلق بسلوك NIO sendfile، تأكد من ذلك أن يكون لديك JDK محدثًا، أو قم بتعطيل سلوك ملف الإرسال في الرابط.<br/> 6427312: (fc) FileChannel.transferTo() يلقي IOException "تمت مقاطعة استدعاء النظام"<br/> 5103988: (fc) يجب أن يقوم FileChannel.transferTo بإرجاع -1 لـ EAGAIN بدلاً من طرح IOException<br/> 6253145: (fc) يفشل FileChannel.transferTo على Linux عند تجاوز حدود 2 جيجابايت<br/> 6470086: (fc) FileChannel.transferTo(2147483647, 1,channel) يسبب استثناء "القيمة كبيرة جدًا"<br/>
====================== تمكين دعم SSI وCGI: ====================== بسبب المخاطر الأمنية المرتبطة بـ CGI وSSI المتاحة لتطبيقات الويب، يتم تعطيل هذه الميزات بشكل افتراضي.
لتمكين وتكوين دعم CGI، يرجى مراجعة صفحة cgi-howto.html.
لتمكين وتكوين دعم SSI، يرجى مراجعة صفحة ssi-howto.html.
================================================================= عناوين URL لمدير الأمان: ================================================================= من أجل منح أذونات الأمان إلى ملفات JAR الموجودة داخل ملف مستودع تطبيقات الويب، استخدم عناوين URL بالتنسيق التالي في ملف السياسة الخاص بك:
===================== ربط الموارد الثابتة: ===================== افتراضيًا، لن تعمل روابط Unix الرمزية عند استخدامها في تطبيق ويب للربط الموارد الموجودة خارج الدليل الجذر لتطبيق الويب.
يعد هذا السلوك اختياريًا، ويمكن استخدام علامة "allowLinking" لتعطيله الشيك.
=================================================== تمكين servlet المستدعي: =================================================== بدءًا من Tomcat 4.1.12، لم يعد servlet للمستدعي متاحًا بواسطة الافتراضي في جميع تطبيقات الويب، ويمكن تمكينه لجميع تطبيقات الويب عن طريق التحرير $CATALINA_HOME/conf/web.xml لإلغاء التعليق على تعيين servlet "/servlet/*" تعريف.
لا يوصى باستخدام servlet المستدعي في بيئة الإنتاج مزيد من التفاصيل متاحة على الأسئلة الشائعة حول Tomcat على http://tomcat.apache.org/faq/misc.html#invocer.
============================================================== عرض سجل تغيير Tomcat: ============================================================== راجع Changelog.html في هذا الدليل.
============================================================================ عندما يفشل كل شيء آخر: ============================================================================ راجع الأسئلة الشائعة http://tomcat.apache.org/faq/