簡體   English   中英

嘗試部署GAE App時“無法更新應用程序:無法編譯生成的JSP java文件。”

[英]“Unable to update app: Failed to compile the generated JSP java files.” when trying to deploy GAE App

我在發帖前做了我的閱讀
我知道在這個問題上有很多問題。
我已經閱讀了所有我能找到的但沒有提到的問題和建議。

我的環境
Windows 7 64位GAE SDK 1.8.8版本1.7.0_45的JDK eclipse kepler 4.3.1 + google插件。

我嘗試過的東西
以下是我已經嘗試過的事情:
1)將系統變量JAVA_HOME更改為指向C:\\ Program Files \\ Java \\ jdk1.7.0_45
2)確保系統變量PATH包含C:\\ Program Files \\ Java \\ jdk1.7.0_45 \\ bin
3)當打開命令窗口並運行java -version和javac -version時,我得到:

   C:\Users\epeleg>java -version
   java version "1.7.0_45"
   Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
   Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

   C:\Users\epeleg>javac -version
   javac 1.7.0_45

4)檢查所有我的JSP頁面(只有2個)在開發服務器中使用時是否正常工作

5)修改了C:\\Program Files\\GAE\\appengine-java-sdk-1.8.8\\bin\\appcfg.cmd以便其中的命令以@%JAVA_HOME%\\bin\\java ...而不是java開頭。 。

6)我打開了Markers Pane(eclipse:window - show view - other ... General - Markers)並解決了那里提到的所有Java問題,無論它們看起來多么微不足道。

日志顯示的內容部署過程報告:

Preparing to deploy:
    Created staging directory at: 'C:\Users\epeleg\AppData\Local\Temp\appcfg1552018719531070310.tmp'
    Scanning for jsp files.
    Compiling jsp files.
com.google.appengine.tools.admin.JspCompilationException: Failed to compile the generated JSP java files.
ינו 13, 2014 3:20:30 PM org.apache.jasper.JspC processFile
INFO: Built File: \myFirstJSP.jsp
ינו 13, 2014 3:20:30 PM org.apache.jasper.JspC processFile
INFO: Built File: \mySecondJSP.jsp


Debugging information may be found in C:\Users\epeleg\AppData\Local\Temp\appengine-deploy4888568219008828635.log

“暫存目錄”似乎沒問題(但可能還有缺少的庫?!),日志文件包含以下文本:

Unable to update:

com.google.appengine.tools.admin.JspCompilationException:無法編譯生成的JSP java文件。 com.google.appengine.tools.admin.Application.compileJavaFiles(Application.java:840)com.google.appengine.tools.admin.Application.compileJsps(Application.java:801)com.google.appengine.tools上的com.google.appengine.tools.admin.Application.compileJavaFiles(Application.java:840) .admin.Application.createStagingDirectory(Application.java:615)位於com.google.appengine.tools.admin.AppAdminImpl.doUpdate(AppAdminImpl.java:418)com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl) .java:55)com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:433)com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:158) )org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

我的問題
1)尋找關於我還能嘗試什么的想法
2)有沒有辦法直接在登台文件夾中從命令窗口模擬編譯,以便我可能希望看到實際有用的錯誤消息?
3)錯誤說Failed to compile the generated JSP java files - 那些生成的文件應該在哪里?
4)有沒有辦法直接從命令行運行appcfg.cmd(以及使用什么參數),這樣我就可以看到它的輸出(假設插件隱藏了一些東西......)。

問題解決了

以下是我為解決此問題所做的工作,希望它能幫助其他有類似問題的人。

我決定嘗試從命令行運行上傳,而不是使用它的插件。 這就是我得到的:
[注意我在@echo off命令中添加了rem,並在appcfg.cmd中從java命令的開頭刪除了@,以便所有命令都回顯到控制台]

C:\Program Files\GAE\appengine-java-sdk-1.8.8\bin>appcfg.cmd update "X:\path\to\my\project\war"
C:\Program Files\GAE\appengine-java-sdk-1.8.8\bin>rem @echo off
C:\Program Files\GAE\appengine-java-sdk-1.8.8\bin>rem Copyright 2009 Google Inc. All Rights Reserved.
C:\Program Files\GAE\appengine-java-sdk-1.8.8\bin>rem Launches the AppCfg utility, which allows Google App Engine
C:\Program Files\GAE\appengine-java-sdk-1.8.8\bin>rem developers to deploy their application to the cloud.
C:\Program Files\GAE\appengine-java-sdk-1.8.8\bin>C:\Program Files\Java\jdk1.7.0_45\bin\java -Djava.home="C:\Program Files\Java\jdk1.7.0_45\jre" -Xmx1100m -cp "C:\Program Files\GAE\appengine-java-sdk-1.8.8\bin\\..\lib\appengine-tools-api.jar" com.google.appengine.tools.admin.AppCfg update "X:\path\to\my\project\war"
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.

好的,所以我再次編輯了appcfg.cmd並將其最后一行更改為如下所示:

"%JAVA_HOME%\bin\java" -Djava.home="%JAVA_HOME%\jre" -Xmx1100m -cp "%~dp0\..\lib\appengine-tools-api.jar" com.google.appengine.tools.admin.AppCfg %*

再試一次:

C:\Program Files\GAE\appengine-java-sdk-1.8.8\bin>appcfg.cmd update "X:\path\to\my\project\war"
C:\Program Files\GAE\appengine-java-sdk-1.8.8\bin>rem @echo off
C:\Program Files\GAE\appengine-java-sdk-1.8.8\bin>rem Copyright 2009 Google Inc. All Rights Reserved.
C:\Program Files\GAE\appengine-java-sdk-1.8.8\bin>rem Launches the AppCfg utility, which allows Google App Engine
C:\Program Files\GAE\appengine-java-sdk-1.8.8\bin>rem developers to deploy their application to the cloud.
C:\Program Files\GAE\appengine-java-sdk-1.8.8\bin>"C:\Program Files\Java\jdk1.7.0_45\bin\java" -Djava.home="C:\Program Files\Java\jdk1.7.0_45\jre" -Xmx1100m -cp "C:\Program Files\GAE\appengine-java-sdk-1.8.8\bin\\..\lib\appengine-tools-api.jar" com.google.appengine.tools.admin.AppCfg update "X:\path\to\my\project\war"
Θ≡σ 13, 2014 5:17:12 PM java.util.prefs.WindowsPreferences <init>
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
Reading application configuration data...
Θ≡σ 13, 2014 5:17:13 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
INFO: Successfully processed X:/path/to/my/project/war\WEB-INF/appengine-web.xml
Θ≡σ 13, 2014 5:17:13 PM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
INFO: Successfully processed X:/path/to/my/project/war\WEB-INF/web.xml
Θ≡σ 13, 2014 5:17:13 PM com.google.apphosting.utils.config.IndexesXmlReader readConfigXml
INFO: Successfully processed X:/path/to/my/project/war\WEB-INF\appengine-generated\datastore-indexes-auto.xml

Beginning interaction for module default...
Email: myemail@mydomain.com
Password for myemail@mydomain.com:
0% Created staging directory at: 'C:\Users\epeleg\AppData\Local\Temp\appcfg8197335956386755707.tmp'
5% Scanning for jsp files.
8% Compiling jsp files.
C:\Users\epeleg\AppData\Local\Temp\1389626267515-0\org\apache\jsp\myFirstJSP_jsp.java:6: error: package com.mycompany does not exist
import com.mycompany.*;
^
C:\Users\epeleg\AppData\Local\Temp\1389626267515-0\org\apache\jsp\mySecondJSP_jsp.java:6: error: package com.mycompany does not exist
import com.mycompany.*;
^
C:\Users\epeleg\AppData\Local\Temp\1389626267515-0\org\apache\jsp\myFirstJSP_jsp.java:6: error: package com.mycompany does not exist
import com.mycompany.*;
^
C:\Users\epeleg\AppData\Local\Temp\1389626267515-0\org\apache\jsp\mySecondJSP_jsp.java:6: error: package com.mycompany does not exist
import com.mycompany.*;
^
2 errors

Error Details:
Θ≡σ 13, 2014 5:17:48 PM org.apache.jasper.JspC processFile
INFO: Built File: \myFirstJSP.jsp
Θ≡σ 13, 2014 5:17:48 PM org.apache.jasper.JspC processFile
INFO: Built File: \mySecondJSP.jsp

com.google.appengine.tools.admin.JspCompilationException: Failed to compile the generated JSP java files.
Unable to update app: Failed to compile the generated JSP java files.
Please see the logs [C:\Users\epeleg\AppData\Local\Temp\appcfg6545644664045561868.log] for further information.

所以我去了我的JSP,從頁面標簽中刪除了有問題的導入屬性,再次嘗試,這次它起作用了。

現在,我不知道為什么插件無法顯示appcfg.cmd輸出中最重要的行,但對我來說這感覺就像某種bug。

兩行摘要
在命令窗口中運行<path-to-appengine-java-sdk>\\bin\\appcfg.cmd update <war-location> ,它會為您提供一個更詳細的輸出然后插件,並且很可能讓您解決問題只需幾分鍾。

如果失敗了,歡迎你按照我在問題機構中提到的所有步驟,嘿似乎過去曾經幫助過其他人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM