簡體   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