كيف يمكنني التحكم في معالجة الاستثناءات التي تم إلقاؤها داخل JSP: تتضمن؟

StackOverflow https://stackoverflow.com/questions/860404

  •  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

في حالة حاويات الويب الأخرى ، لم أجرب هذه المشكلة بعد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top