java.lang.ClassCastException не может быть приведен к javax.servlet.ServletException - PullRequest
3 голосов
/ 09 ноября 2009

Я пытаюсь развернуть приложение Java в appspot (Google Appengine). Я новичок в Java, так что терпите меня. Когда я запускаю приложение локально из 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)

Может кто-нибудь пролить свет на эту проблему? Что может быть не так на этой конкретной странице? Если вы хотите увидеть код страницы, дайте мне знать.

Ответы [ 2 ]

2 голосов
/ 09 ноября 2009

Похоже, что-то в вашем коде вызывает исключение, которое не является производным от ServletException. Обработчик вверх по течению ловит это исключение и (возможно) пытается сделать что-то умное с ним.

Вероятно, есть еще одна основная причина, вызывающая исключение, во-первых, но это можно выявить, посмотрев сначала, что такое исключение.

Если вы не уверены, где находится это исключение, попробуйте поместить обработчик всей страницы в блок try ... catch, ища все Throwable. Когда вы найдете один, сбросьте его внутрь ServletException:

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

Это должно позволить веб-серверу отображать исключение, чтобы вы могли продолжить отслеживать проблему. Обратите внимание, что это, вероятно, временный код.

0 голосов
/ 12 января 2011

Найдите экземпляры javax.servlet.ServletException.class в вашем WEB-INF / lib. Содержимое для servler.jar или servlet.api.jar должно предоставляться контейнером и не должно появляться в вашем файле WAR.

...