未能在App Engine托管虚拟机

时间:2016-01-05 19:57:06

标签: java google-app-engine zk managed-vm google-managed-vm

我根据示例here编写了一个非常简单的应用程序。

当我尝试使用独立的Jetty 9.2.10.v20150310(与GAE Managed VM使用的版本相同)运行它时,它可以正常工作(加载和保存)。当我尝试使用Google Cloud SDK maven插件运行它时,或者当我将其部署到App Engine时,电子表格内容会加载,但CSS无法下载,但服务器上有异常:

[INFO] SEVERE: Failed to load media, /view/z_obs/lGAQ1/f14/0/ss_lGAQ1_t0_sheet_0.css
[INFO] java.lang.NullPointerException
[INFO]  at org.zkoss.zss.ui.Spreadsheet.getMergeMatrixHelper(Spreadsheet.java:2755)
[INFO]  at org.zkoss.zss.ui.Spreadsheet.prepareBasicStyleSheet(Spreadsheet.java:4144)
[INFO]  at org.zkoss.zss.ui.Spreadsheet.getSheetDefaultRules0(Spreadsheet.java:4603)
[INFO]  at org.zkoss.zss.ui.Spreadsheet.getSheetDefaultRules(Spreadsheet.java:4597)
[INFO]  at org.zkoss.zss.ui.Spreadsheet.access$6200(Spreadsheet.java:219)
[INFO]  at org.zkoss.zss.ui.Spreadsheet$ExtraCtrl.getMedia(Spreadsheet.java:3041)
[INFO]  at org.zkoss.zk.au.http.AuDynaMediar.service(AuDynaMediar.java:128)

然后UI略微混乱 - 单元格选择突出显示不在单元格的正确长度,并且尝试键入或格式化单元格内容失败。我尝试了各种组合--ZUL和JSP,使用src属性设置电子表格,使用bookProvider属性和SelectorComposer设置电子表格,有时上面提到的CSS很好地下载,没有例外,或者稍后会出现异常,但是在所有情况下,每当我对单元格进行更改时,它们都会立即恢复,或者在尝试键入一个单元格后,我无法键入任何内容。根据记录的异常,我认为当前的书在操作期间以某种方式为空,例如:

[INFO] java.lang.NullPointerException
[INFO]  at org.zkoss.zss.ui.au.in.FetchActiveRangeCommand.process(FetchActiveRangeCommand.java:57)

[INFO] java.lang.NullPointerException
[INFO]  at org.zkoss.zss.ui.au.in.AbstractCommand.getSheetUuid(AbstractCommand.java:37)
[INFO]  at org.zkoss.zss.ui.au.in.CellFocusedCommand.process(CellFocusedCommand.java:55)

我按照说明here使应用程序更符合GAE,但除了会话序列化我不认为托管VM中需要这些设置,并且它们没有制作差。

由于它适用于相同版本的Standalong Jetty,我认为可以假设App Engine / Docker以某种方式导致这种情况。我能够使用旧的GAE SDK在本地运行它,它使用改进的Jetty 6,但它不能模拟生产环境。我无法部署到经典GAE,因为ZK Spreadsheet依赖于java.awt。*类。

我尝试使用默认的Java运行时,并尝试使用基于gcr.io/google_appengine/jetty9的自定义运行时,gcr.io / google_appengine / java-compat和gcr.io/google_appengine/jetty9-compat - didn&# 39;似乎很重要。

我想我可以尝试基于独立Jetty(或任何应用程序服务器)的第三方Docker映像,只是为了让事情正常工作,但我确实需要访问数据存储区和blobstore。

任何处理这方面的帮助都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

我在github项目中提交了一个应该解决问题的错误: https://github.com/GoogleCloudPlatform/appengine-java-vm-runtime/issues/151