java.lang.ClassCastException não pode ser convertido para javax.servlet.ServletException
-
19-09-2019 - |
Pergunta
Eu estou tentando implantar um aplicativo java para AppSpot (google appengine). Eu sou novo em java, para ter comigo. Quando eu executar o aplicativo localmente a partir de eclipse, ele funciona muito bem. Após o upload para o Google appspot, eu recebo um erro (apenas em uma das páginas .jsp, outras páginas .jsp trabalho finos). O log de erro diz:
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)
Alguém pode lançar alguma luz sobre esta questão? O que poderia estar errado nesta página particular? Se você gostaria de ver o código da página, deixe-me saber.
Solução
Parece que algo no seu código é lançar uma exceção que não deriva de ServletException
. Um manipulador montante está pegando essa exceção e (possivelmente) tentando fazer algo inteligente com ele.
Há provavelmente um outro problema subjacente causando a exceção seja lançada em primeiro lugar, mas que pode ser revelado por ver primeiro o que a exceção é.
Se você não tem certeza onde esta exceção é, tentar envolver você manipulador de página inteira em um try
... bloco catch
, olhando para todos Throwable
de. Quando você encontrar um, relançar-lo dentro de um ServletException
:
try {
// handle page request
} catch (Throwable t) {
throw new ServletException(t);
}
Isso deve permitir que o servidor web para exibir a exceção para que possa continuar a rastrear o problema. Note que este provavelmente deve ser um código temporário.
Outras dicas
Procure casos de javax.servlet.ServletException.class no seu WEB-INF / lib. Conteúdo para servler.jar ou servlet.api.jar devem ser fornecidos bye o recipiente e não deve aparecer em seu arquivo WAR.