时,Google App Engine 不会部署-6ren"> 时,Google App Engine 不会部署-该项目在我的本地计算机上完美编译和运行。每当我尝试部署时,我都会收到此错误: Unable to update: com.google.appengine.tools.admin.JspCompila-6ren">
gpt4 book ai didi

google-app-engine - 使用 <%@ include file ="/file.jsp"%> 时,Google App Engine 不会部署

转载 作者:太空宇宙 更新时间:2023-11-03 15:36:51 24 4
gpt4 key购买 nike

该项目在我的本地计算机上完美编译和运行。每当我尝试部署时,我都会收到此错误:

Unable to update:
com.google.appengine.tools.admin.JspCompilationException: Failed to compile the generated JSP java files.
at com.google.appengine.tools.admin.Application.compileJavaFiles(Application.java:803)
at com.google.appengine.tools.admin.Application.compileJsps(Application.java:760)
at com.google.appengine.tools.admin.Application.createStagingDirectory(Application.java:592)
at com.google.appengine.tools.admin.AppAdminImpl.doUpdate(AppAdminImpl.java:370)
at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:53)
at com.google.appengine.tools.admin.AppCfg$UpdateAction.execute(AppCfg.java:1163)
at com.google.appengine.tools.admin.AppCfg.<init>(AppCfg.java:232)
at com.google.appengine.tools.admin.AppCfg.<init>(AppCfg.java:109)
at com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:105)

我在谷歌上搜索了很多,并应用了我找到的所有可能的解决方案。我确保 Eclipse 使用的是 JDK 而不是 JRE。我什至尝试将 jdk 中的 tools.jar 放入 AppEngineSDK 的 lib/shared 中。没有任何效果,所以我决定尝试另一种方法 - 我使用 Guestbook 演示作为起点。 Guestbook 演示在未修改的情况下完美部署。但后来我修改了它。我将下面的代码从 guestbook.jsp 移到单独的 .jsp 文件 (includement.jsp) 中。然后我在 guestbook.jsp 中使用 <%@ include file="/includement.jsp"%>。就是这样。它在我的本地计算机上完美运行。但它不会部署给我上面显示的错误。

这是我移动的代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.List" %>
<%@ page import="com.google.appengine.api.users.User" %>
<%@ page import="com.google.appengine.api.users.UserService" %>
<%@ page import="com.google.appengine.api.users.UserServiceFactory" %>
<%@ page import="com.google.appengine.api.datastore.DatastoreServiceFactory" %>
<%@ page import="com.google.appengine.api.datastore.DatastoreService" %>
<%@ page import="com.google.appengine.api.datastore.Query" %>
<%@ page import="com.google.appengine.api.datastore.Entity" %>
<%@ page import="com.google.appengine.api.datastore.FetchOptions" %>
<%@ page import="com.google.appengine.api.datastore.Key" %>
<%@ page import="com.google.appengine.api.datastore.KeyFactory" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<%
String guestbookName = request.getParameter("guestbookName");
if (guestbookName == null) {
guestbookName = "default";
}
pageContext.setAttribute("guestbookName", guestbookName);
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
if (user != null) {
pageContext.setAttribute("user", user);
%>

我已经挣扎了一个星期了,我非常绝望。它在本地工作并且不会部署对我来说没有任何意义。

最佳答案

嗯...这不能回答您的问题,但也许会对其他人有所帮助。

我刚刚遇到了非常相似的情况。在本地工作正常,但在部署时出现文件未找到错误。我在静态文件上访问了这个页面 ( https://developers.google.com/appengine/docs/java/gettingstarted/staticfiles ),这让我开始思考。

我的包含文件没有 jsp 扩展名,并且被应用引擎视为静态文件,因此它们可以从任何服务器提供。与此相反的意思是 jsp 文件仅由一台服务器提供,并且由于包含文件是从 jsp 页面引用的,因此它们具有相同的约束——它们不能是静态文件。当你想到它时,它是有道理的。在本地提供的包含文件将按顺序执行,并且页面创建没有问题。将这些相同的文件放在其他服务器上,您就会遇到同步问题。将包含文件保存在所服务页面的本地更有意义。

在我的例子中,我将我的包含重命名为 jsp 扩展并且效果很好。在你的情况下不是这样,因为你已经有一个 jsp 扩展——这很奇怪。

--编辑--

说得太快了。它起作用了,又坏了。现在 gae 返回“无法编译生成的 JSP java 文件”。当然在本地工作正常...

关于google-app-engine - 使用 <%@ include file ="/file.jsp"%> 时,Google App Engine 不会部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15309621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com