java.lang.classcastexcept لا يمكن أن يلقي إلى javax.servlet.servletException

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

سؤال

أحاول نشر تطبيق Java إلى Appspot (Google Appengine). أنا جديد على جافا، لذلك تحمل معي. عندما أقوم بتشغيل التطبيق محليا من Eclipse، فإنه يعمل بشكل جيد. بعد تحميلها إلى Google Appspot، أحصل على خطأ (فقط في واحدة من صفحات .jsp، صفحات .jsp الأخرى تعمل بشكل جيد). سجل الأخطاء يقول:

   Uncaught exception from servlet

java.lang.ClassCastException: java.lang.ClassCastException cannot be cast to javax.servlet.ServletException
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:754)

هل يمكن لشخص ما إلقاء بعض الضوء على هذه المشكلة؟ ماذا يمكن أن يكون الخطأ في هذه الصفحة بالذات؟ إذا كنت ترغب في رؤية رمز الصفحة، فأعلمني بذلك.

هل كانت مفيدة؟

المحلول

يبدو وكأنه شيء في التعليمات البرمجية الخاصة بك هو رمي استثناء لا يستشأ من ServletException. وبعد يتم الاحتفاظ بمعالج المنبع في هذا الاستثناء و (ربما) يحاول القيام بشيء ذكي معه.

ربما توجد مشكلة أساسية أخرى تسبب في إلقاء الاستثناء في المقام الأول، ولكن قد يتم الكشف عنها من خلال رؤية أول ما هو الاستثناء.

إذا لم تكن متأكدا من مكان وجود هذا الاستثناء، فحاول التفاف بكامل صفحات كاملة في try ... catch كتلة، تبحث عن الكل Throwable'س. عندما تجد واحدة، rethrow ذلك داخل ServletException:

try {
    // handle page request
} catch (Throwable t) {
    throw new ServletException(t);
}

يجب أن يسمح ذلك لخادم الويب بعرض الاستثناء حتى تتمكن من متابعة تعقب المشكلة. لاحظ أن هذا يجب أن يكون رمز مؤقت.

نصائح أخرى

ابحث عن مثيلات javax.servlet.servletexception.class في الويب الخاص بك / ليب. يجب توفير محتويات Servler.jar أو servlet.api.jar وداعا الحاوية ويجب ألا يظهر في ملف حربك.

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