我正在学习谷歌应用程序引擎框架和服务,为此我构建了谷歌本身在他们的谷歌应用程序引擎主页上的“文档”下提供的教程。
教程非常简单,构建一个使用数据存储区来保存用户“问候”的留言板网络应用程序。 我手动完成了教程中的所有内容,并且所有内容都像他们所说的那样。当我从eclipse运行它时,它运行得很好,没有任何错误。
所以我部署它(没有错误,“部署成功”)只是为了看到它运行,然后转向更难的例子,但我得到一个错误500.检查日志我得到:“java.lang.ClassNotFoundException: guestbook.SignGuestbookServlet“这是应用程序中唯一的servlet,它从我的机器运行得很好,为什么不从app引擎运行?
web.xml上的映射是正确的(就像谷歌一样),appengine-web.xml具有应用程序名称。它能是什么? 提前谢谢。
编辑:好吧,我现在感到愚蠢。显然我必须在部署之前构建,我认为deply程序将为我构建一切从头开始,我猜我错了。抱歉浪费任何时间,我希望有时它可以帮助有同样问题的人。答案 0 :(得分:2)
我曾经遇到过同样的问题。正如我记得的那样,我曾经在war文件中添加了一些依赖项。本地服务器在其类路径上有jar,但是appengine服务器没有,因此我得到了ClassNotFoundException。
所以你可能需要检查战争中包含哪些罐子。
答案 1 :(得分:2)
从Eclipse运行的问题是Eclipse将所有内容和厨房放入其类路径中。
我建议您分解部署war文件并检查WEB-INF / classes和WEB-INF / lib,并确保您的.class文件存在。
答案 2 :(得分:1)
我有同样的问题,然后我意识到我将appcfg指向错误的WEB-INF目录。
请记住,不要将appcfg指向源WEB-INF,而是指向目标WEB-INF(例如:通过mvn包生成的WEB-INF,包含类/和lib /)。