我正在尝试将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)
有人可以解释这个问题吗?这个特定页面可能有什么问题?如果您想查看页面代码,请告诉我。
答案 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文件中。