java.lang.ClassCastException无法强制转换为javax.servlet.ServletException

时间:2009-11-09 20:06:11

标签: google-app-engine jsp servletexception

我正在尝试将Java应用程序部署到appspot(google appengine)。我是java的新手,所以请耐心等待。当我从eclipse本地运行应用程序时,它运行正常。 上传到谷歌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 个答案:

答案 0 :(得分:2)

您的代码中的某些内容似乎抛出了不是从ServletException派生的异常。上游的处理程序正在捕获该异常并且(可能)尝试使用它做一些智能操作。

可能存在另一个潜在的问题,导致首先抛出异常,但可以通过首先看到异常是什么来揭示。

如果您不确定此例外的位置,请尝试将整个页面处理程序包装在try ... catch块中,查找所有Throwable。当你找到一个时,在ServletException

内重新抛出它
try {
    // handle page request
} catch (Throwable t) {
    throw new ServletException(t);
}

这应该允许Web服务器显示异常,以便您可以继续追踪问题。请注意,这应该是临时代码。

答案 1 :(得分:0)

在WEB-INF / lib中查找javax.servlet.ServletException.class的实例。 servler.jar或servlet.api.jar的内容应该由容器提供,不应出现在WAR文件中。