如何在本地安装的Java 7中将Play Framework与Google App Engine一起使用?

San*_*čić 5 java google-app-engine scala java-7 playframework

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

默认应用程序在本地工作正常(在localhost:9000,默认端口).我还成功地使用了GAE发布了默认应用程序play gae:deploy.

但是,当我转到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.
Run Code Online (Sandbox Code Playgroud)

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

我猜第一个错误,NPE,是由于可以很容易修复的东西,所以现在忽略它; 但请注意第二个 - 关键 - 错误,它说:

java.lang.UnsupportedClassVersionError: helpers/CheatSheetHelper$1 : Unsupported major.minor version 51.0
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢.

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

Cod*_*nci 2

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

java.source=1.6
Run Code Online (Sandbox Code Playgroud)

请参阅此处了解更多详细信息 -验证错误;方法controllers.Secure$Security.authentify 中需要一个堆栈映射框架