java.lang.ClassCastExceptionがはjavax.servlet.ServletExceptionにキャストすることはできません

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

質問

私は(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ファイルに表示されません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top