14

我的项目在本地运行良好,但是在尝试将其部署到 GAE 服务器时,我收到以下错误消息:

Unable to update app: Failed to compile the generated JSP java files.

这主要发生在我从 Java 7 切换到 Java 6 时,因为显然 GAE 还不支持它。我使用的是 GAE 1.7.4,这是一个已知问题吗?项目有什么问题?它是 JSP 中的语法吗?他们曾经在我开始使用 GAE 1.7.4 之前进行编译,但我不知道何时开始编译的确切原因。

4

7 回答 7

11

我一直有同样的问题,并确信存在 GAE 问题。但是,现在我意识到我已经更改了由我的几个 .jsp 文件引用的 .java 文件的名称,并且 .jsp 中的文件名没有更改。在我修复 .jsp 部署中的文件名后,再次正常工作。啊。

我认为在 GAE 开始编译 JSP 文件之前,有错误的 JSP 文件会成功部署。此外,在本地运行时,JSP 显然在被访问之前不会编译,因此除非所有 JSP 文件都在本地测试,否则您可能不知道错误。但是如果您尝试部署,JSP 编译会失败并且部署会中止。不幸的是,没有合理的错误消息提示问题所在的位置。

于 2013-02-04T20:03:32.833 回答
5

我尝试再次在eclipse上重新编译java文件并检查错误。
我认为这是检查它的更好方法。

这是我的详细博客。
http://nurinamu.tumblr.com/post/62384368766/how-to-detect-the-jsp-compile-error-when-deploy-to

于 2013-09-27T02:44:28.080 回答
4

我有同样的问题。我更改了一个由我通常不去的 JSP 调用的方法的方法签名。因此,当在本地运行时,一切正常,因为我从未去过有问题的 JSP。

解决此问题的方法是在本地运行并转到项目中的每个 JSP。最终,我找到了一个 JSP,它在我的浏览器窗口中本地为我提供了完整的堆栈跟踪。当我修复该 JSP 中的错误时,我再次能够部署到应用引擎生产环境。

如果 GAE 能够报告哪个 JSP 出现故障会更好,但是这种技术会起作用。

于 2013-06-29T18:02:38.400 回答
2

我在同样的问题上运行。是的,您在 Eclipse 和日志中遇到的错误确实无济于事,但想分享部署到本地开发服务器而不是提供了非常有用的错误消息,例如在我的情况下:


HTTP 错误 500

访问 / 时出现问题。原因:

无法为 JSP 编译类:

在 jsp 文件中的第 286 行发生错误:/dashboard.jsp

重复的局部变量数据存储

283:   </head>
284:   <body onload="initialize()">
285:     <%
286:     DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
287: 
288:     UserService userService = UserServiceFactory.getUserService();
289:     User user = userService.getCurrentUser();

省了一个大头疼。

于 2013-02-14T06:35:01.627 回答
1

nurinamu 的回答是好的,但它对我不起作用,因为我的项目太复杂,而且我无法解决链接 appengine 暂存区域中生成的源文件夹时遇到的错误。但是我确实设法解决了我的问题!

这种方法有点麻烦,但在最坏的情况下:将 JSP 移出项目并进行测试部署,直到缩小范围并找到导致问题的 JSP。

这真的是我能找出导致问题的唯一方法。

更新

对我来说,错误是 appengine 不支持的恶意导入。

于 2016-04-26T18:04:05.363 回答
0

如果您使用 JSP 包含,您必须确保包含在其他文件中的 JSP 文件具有所有正确的导入,即使一切似乎在测试环境中运行良好。

例如,如果您有一个名为的文件inc.jsp,并且在其他文件中包含它,如下所示:

<%@include file="inc.jsp" %>

然后在里面inc.jsp你必须确保所有正确的导入都在那里,即使编译器没有明确抱怨它。

在包含 JSP 中查找错误的一种简单方法是在运行开发服务器时尝试在浏览器中打开它。您将看到编译器没有告诉您的 JSP 错误。

这是我发现问题中提到的错误的原因之一。

于 2013-03-31T21:18:13.803 回答
0

只需确保所有 jsp 文件都在本地运行,这样您就可以尝试run and/or test all jsp files on your local. 它们在任何 jsp 文件中都必须是错误的。

我以这种方式解决了这个问题。

我只有一个 jsp 文件有错误,但它对所有 jsp 文件显示相同的错误,所以不要担心所有文件。

于 2015-08-26T18:50:12.467 回答