3

我正在尝试将 Java 应用程序部署到 apppot(谷歌 appengine)。我是java新手,所以请耐心等待。当我从 Eclipse 本地运行应用程序时,它运行良好。将其上传到 google apppot 后,我​​收到一个错误(仅在一个 .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)

有人可以阐明这个问题吗?这个特定页面可能有什么问题?如果您想查看页面代码,请告诉我。

4

2 回答 2

2

看起来您的代码中的某些内容引发了一个不是从ServletException. 上游的处理程序正在捕获该异常并(可能)尝试用它做一些智能的事情。

可能还有另一个潜在的问题导致异常首先被抛出,但这可能会通过首先查看异常是什么来揭示。

如果您不确定此异常在哪里,请尝试将整个页面处理程序包装在try...catch块中,查找 all Throwable。当您找到一个时,将其重新放入 a ServletException

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

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

于 2009-11-09T20:09:01.023 回答
0

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

于 2011-01-12T11:36:42.273 回答