2009-11-09 113 views
3

我想部署一个Java应用程序到appspot(谷歌appengine)。我是java新手,请耐心等待。当我从eclipse本地运行应用程序时,它运行良好。 上传到谷歌appspot后,我得到一个错误(只在其中一个.jsp页面,其他.jsp页面工作正常)。错误日志说:java.lang.ClassCastException不能转换为javax.servlet.ServletException

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

它看起来像你的代码中的东西抛出一个异常,不是从ServletException派生。上游处理程序正在捕捉该异常,并且(可能)试图对其执行一些智能处理。

可能还有另一个潜在的问题导致异常首先被抛出,但是可能会首先看到异常是什么。

如果您不确定此例外情况,请尝试将您的整个页面处理程序包装在try ... catch区块中,查找所有Throwable's。当你发现一个,重新抛出一个ServletException内:

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

这应该允许web服务器显示异常,所以你可以继续追查问题。请注意,这应该是临时代码。

0

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

相关问题