Java NoClassDefFoundError:应用程序引擎上的JspSourceDependent

Java NoClassDefFoundError:应用程序引擎上的JspSourceDependent,java,google-app-engine,Java,Google App Engine,我的应用程序在dev服务器上运行良好,但当我上传它时,它无法启动,我在日志中得到以下异常:java.lang.NoClassDefFoundError:org/apache/jasper/runtime/JspSourceDependent。到目前为止,它似乎与我的应用程序中声明的jsp依赖项有关,它们是: <dependency> <groupId>javax.servlet</groupId> <artifac

我的应用程序在dev服务器上运行良好,但当我上传它时,它无法启动,我在日志中得到以下异常:
java.lang.NoClassDefFoundError:org/apache/jasper/runtime/JspSourceDependent
。到目前为止,它似乎与我的应用程序中声明的jsp依赖项有关,它们是:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.el</groupId>
        <artifactId>el-api</artifactId>
        <version>2.2</version>
        <scope>provided</scope>
    </dependency>

javax.servlet
servlet api
2.5
假如
javax.servlet.jsp
jsp api
2.1
假如
javax.servlet
jstl
1.2
假如
javax.el
埃尔api
2.2
假如

我在这里遗漏了一些明显的东西,为什么该应用程序在开发环境中运行良好,但在生产环境中无法启动?

我认为您需要为开发服务器切换到Jetty

这个异常是由于使用jspc maven插件预编译JSP导致的,该插件将tomcat特定的代码保留在预编译的类中。解决方案是从pom中删除插件,让appcfg在上传之前进行预编译。

是否有堆栈跟踪?这没什么好谈的。我不知道投票结果如何,但它非常有用。在部署到Jetty时,我遇到了一个不同的异常,最终导致我找到了解决方案。