java.lang.ClassCastExceptionがはjavax.servlet.ServletExceptionにキャストすることはできません
-
19-09-2019 - |
質問
私は(GoogleのAppEngineのを)appspotするJavaアプリケーションを配備しようとしています。私は、Javaに新たなんだ、そう私と一緒にクマ。私は日食からローカルアプリケーションを実行すると、それが正常に動作します。 それはappspot Googleにアップロードした後、私はエラーを取得する(だけの.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
ブロックにあなたのページ全体ハンドラをラップしてみてください。あなたがものを見つけた場合、ServletException
の内側にそれを再スローます:
try {
// handle page request
} catch (Throwable t) {
throw new ServletException(t);
}
これは、あなたが問題を追跡続けることができるように、Webサーバーが例外を表示できるようにする必要があります。これはおそらく一時的なコードでなければならないことに注意してください。
他のヒント
あなたのWEB-INF / libにjavax.servlet.ServletException.classのインスタンスを探します。 servler.jarまたはservlet.api.jarのための内容は、別れた容器を提供する必要がありますし、あなたのWARファイルに表示されません。