Java Google应用程序引擎:部署后ClassNotFoundException,但在本地服务器上运行良好

Java Google应用程序引擎:部署后ClassNotFoundException,但在本地服务器上运行良好,java,eclipse,google-app-engine,Java,Eclipse,Google App Engine,我正在学习谷歌应用程序引擎框架和服务,为此,我在谷歌应用程序引擎主页的“文档”下创建了谷歌自己提供的教程 本教程非常简单,构建一个留言簿web应用程序,使用数据存储保存用户的“问候语”。 我用手做了教程上的每一件事,每一件事都像他们说的那样。当我从eclipse运行它时,它工作得很好,没有任何错误 所以我部署了它(没有错误,“deploy successful”)只是为了看到它在运行,然后再转到更难的示例,但我得到了一个错误500。检查日志,我得到一个:“java.lang.ClassNotFo

我正在学习谷歌应用程序引擎框架和服务,为此,我在谷歌应用程序引擎主页的“文档”下创建了谷歌自己提供的教程

本教程非常简单,构建一个留言簿web应用程序,使用数据存储保存用户的“问候语”。 我用手做了教程上的每一件事,每一件事都像他们说的那样。当我从eclipse运行它时,它工作得很好,没有任何错误

所以我部署了它(没有错误,“deploy successful”)只是为了看到它在运行,然后再转到更难的示例,但我得到了一个错误500。检查日志,我得到一个:“java.lang.ClassNotFoundException:guestbook.SignGuestbookServlet”这是应用程序中唯一的servlet,它在我的机器上运行得很好,为什么不在应用程序引擎中运行呢

web.xml上的映射是正确的(就像谷歌的映射一样),appengine-web.xml具有应用程序名称。可能是什么? 提前谢谢


编辑:好吧,现在我觉得自己很笨。显然,我必须在部署之前进行构建,我认为deply过程将为我从头构建所有内容,我想我错了。很抱歉浪费了任何人的时间,我希望有一天它能帮助有同样问题的人。

我曾经有过同样的问题。我记得我忘记了在war文件中添加一些依赖项。本地服务器的类路径上有JAR,但appengine服务器没有,因此我得到了一个ClassNotFoundException


因此,您可能需要检查war中包括哪些JAR。

从Eclipse运行的问题是Eclipse将所有内容和厨房水槽都放在了它的类路径中


我建议您分解部署war文件,检查WEB-INF/classes和WEB-INF/lib,并确保您的.class文件存在。

我也有同样的问题,然后我意识到我将appcfg指向了错误WEB-INF的目录


请记住,不要将appcfg指向源WEB-INF,而是指向目标WEB-INF(例如:指向mvn包生成的WEB-INF,即包含类/和lib/的WEB-INF)。

谢谢您的回答。所以我只有一个名为SignGuestbookServlet.java的servlet,我试图将它复制到war文件夹,但没有成功。我把它映射到web.xml文件(在war文件夹中),其中guestbook.SignGuestbookServlet仍然不起作用。除了在war/lib文件夹中的appengine之外,我不使用任何外部的.jar。是否还有其他文件需要编辑以添加类路径?也许是appengine-web.xml?大部分是空的(是自动生成的)。您的问题可能不同,答案非常一般。您可以放置完整的堆栈跟踪吗