كيف يمكنني التحكم في معالجة الاستثناءات التي تم إلقاؤها داخل JSP: تتضمن؟
-
21-08-2019 - |
سؤال
لدي JSP ، والذي يتضمن JSP آخر عبر <jsp:include>
. لدي أيضًا (ما أعتقد أنه) إعداد صفحة خطأ قياسية. المشكلة هي أنه عندما يحدث استثناء داخل الملف المضمّن ، فإنه لا "يشرق" إلى JSP. بدلاً من ذلك ، يقوم بإدراج صفحة الخطأ في منتصف الطريق من خلال معالجة JSP المضمنة.
الغريب بما فيه الكفاية ، حتى أنه لا يدرج إخراج صفحة الخطأ في السطر حدث الخطأ. على سبيل المثال ، إذا تسببت في استثناء في السطر 600 من JSP المضمّن ، فسأرى الإخراج من 300-400 سطر الأول ، ثم انظر صفحة الخطأ (في HTML المخرج).
بدلاً من أول 300-400 سطر من الملف المضمّن الذي يظهر في مثل هذه الحالة ، فإن ما أراه كثيرًا هو أن أي من إخراج الصفحة المضمّن يظهر على الإطلاق ، و فقط إخراج صفحة الخطأ. هل هذا ممكن ، أم أن هناك مشكلة في التخزين المؤقت للملفات المضمنة التي تمنعها؟
أوه ، لقد حاولت بالفعل تعيين "Flush = 'True" على علامة Include ، وحاولت لف كل شيء في Try/Catch على كل من Includer و Inflee ... ولكن لم يساعد ذلك.
المحلول
لا باستخدام مخزن مؤقت كبير (<%@ page buffer="1024kb" %>
) و flush="false"
لتشمل العمل؟
نصائح أخرى
يمكن أن تعتمد مشكلة "Bubble Up" الأصلية على حاوية الويب. نحن نستخدم WebSphere 7 ويعمل بطريقة مختلفة عن إصدارات WebSphere الأخرى: لا يتم نشر استثناءات الصفحة المضمنة إلى JSP Includer. عندما لا يتم تحديد أي صفحة خطأ للصفحة المضمنة ، تتم طباعة رسالة الاستثناء إلى دفق الإخراج.
في حالة WebSphere 7 ، وجدنا معلمة Followng التي تسمح للاستثناءات بالفقراء عبر JSP: قم بتضمين العلامة: com.ibm.ws.webContainer.DispatcherRethRowsError من FixPack 15. هنا معلومات إضافية: http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/index.jsp؟topic=٪2Fcom.ibm.websphere.express.doc٪2finfo٪2fexp٪2fae٪2freweb_custom_props.html
في حالة حاويات الويب الأخرى ، لم أجرب هذه المشكلة بعد.