繁体   English   中英

如何将Play Framework与Google App Engine和本地安装的Java 7结合使用?

[英]How to use the Play Framework with Google App Engine with locally installed Java 7?

我刚刚下载了最新版本的Play Framework(1.2.3),并将其与最新的Scala插件(0.9.1)和Google App Engine模块(1.4)结合使用。

默认应用程序在本地运行良好(默认端口为localhost:9000)。 我还使用play gae:deploy成功将默认应用程序发布到GAE。

但是,当我转到GAE远程URL时,会收到标准错误消息:

Error: Server Error.
The server encountered an error and could not complete your request.

If the problem persists, please report your problem and mention this error message and the query that caused it.

这是GAE日志中的完整堆栈跟踪: https : //gist.github.com/1181257

我猜第一个错误是NPE,它是由于可以轻松修复的原因所致,因此暂时忽略该错误; 但是,请注意第二个“严重”错误,它指出:

java.lang.UnsupportedClassVersionError: helpers/CheatSheetHelper$1 : Unsupported major.minor version 51.0

(我认为)51.0是Java 7编译器生成的类版本。 现在,我的问题很简单:

如何使用-target 1.6和-source 1.6选项强制Play框架及其Scala插件编译GAE发布的类,以使输出类兼容1.6,而不是默认值,从而使本地Java 7安装生成1.7输出类?

谢谢。

[编辑]至于NPE,似乎没有在Play 1.2.1和0.9版的Scala插件上抛出: 具有scala和GAE的Play框架 -再次,这只是附带问题,主要问题(获取Java) 7工作)仍然站立。 我为此创建了一个票证: http : //play.lighthouseapp.com/projects/74274-play-scala/tickets/45-nullpointerexception-on-google-app-engine

要使Java 7当前工作,您必须在application.confirm文件中使用以下配置

java.source=1.6

详细信息请参见此处-VerifyError; 在方法controllers.Secure $ Security.authentify中需要一个堆栈映射框架

Play 1.2.4 RC3完全支持Java 7-试试看一下,看看它是否解决了您的问题。

我只是遇到了同样的问题。 我正在运行Java 7,并且不想让我所有其他Java东西再次在6上运行。 因此,我要做的是将JDK 6的副本转储到目录中,然后制作了一个简单的bash脚本来设置适当的环境vars并调用play。 然后,我将该脚本链接为我的路径上的“播放”。 现在,当播放被调用时,它可以在JDK 6环境下运行,而无需更改计算机上的其他所有内容。

...虽然不理想,但效果很好,可以保持一切清洁。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM