0

私はしばらくの間、プレイフレームワークを使用して(Eclipseを使用して)Webアプリを開発しています。Play 1.2.3 と JDK6 を使用していたので、JDK7 を使用する開発環境 (新しい PC) を変更する必要がありました。私の依存関係は次のとおりです。

require:
- play
- play -> crudsiena 2.0.1
- play -> siena 2.0.5
- play -> secure
- play -> gae 1.6
- provided -> opencsv 2.3
- provided -> ddlutils_siena 1.0
- provided -> gae_aws_sdk 1.1.7.1
#- provided -> play 1.2.4
#- provided -> httpclient 4.1.1
#- provided -> httpcore 4.1
repositories: 
- provided: 
   type:       local 
   artifact:   "${application.path}/jar/[module]-[revision].jar" 
   contains: 
     - provided -> * 

更新後、ローカルホストでもアプリを実行できなかったので、調査を開始しました。Play 1.2.3 が JDK7 をサポートしていないことがわかったので、1.2.4 に変更しました。次に、Siena のバージョンを 2.0.7 に更新し、application.conf に次の行を含めました。

java.source=1.7

play で新しいプロジェクトを作成し、必要なファイルを新しいプロジェクトにコピーしました。適切な JAVA_HOME 環境変数を設定しました。私のローカルホストのアプリケーションは正常に動作しています。ただし、Google App Engine でバージョンを更新しても、次のエラーが発生します。

Uncaught exception from servlet
java.lang.UnsupportedClassVersionError: controllers/Admin : Unsupported major.minor version 51.0
at com.google.appengine.runtime.Request.process-1921becf6a885374(Request.java)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:174)
at play.classloading.ApplicationClassloader.loadApplicationClass(ApplicationClassloader.java:118)
at play.classloading.ApplicationClassloader.getAllClasses(ApplicationClassloader.java:401)
at play.Play.preCompile(Play.java:570)
at play.Play.init(Play.java:299)
at play.server.ServletWrapper.contextInitialized(ServletWrapper.java:77)
at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:452)
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:459)
at com.google.tracing.TraceContext.runInContext(TraceContext.java:701)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:336)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:328)
at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:456)
at java.lang.Thread.run(Thread.java:679)

JDK6からJDK7への移行と関係があることは認識していますが、GAEでアプリを実行するために他にどこを見ればよいかわかりません。さらに、コンパイラはEclipseで1.7に設定されています。

私と一緒にこれを整理するのを手伝ってください。

4

1 に答える 1

1

App Engine で Java を使用するには、JDK 6 を使用する必要があります: https://developers.google.com/appengine/docs/java/overview

問題トラッカーに問題があります: http://code.google.com/p/googleappengine/issues/detail?id=6972

ごめん!しかし、私はあなたが変わらなければならないと思います。

(これは今のところ真実であることに注意してください。Google には何らかのアップグレード計画があるのではないかと思いますが、Java 7 の発表は聞いていません。おそらく、そのための限定的な「信頼できるテスター」プログラムを持っているでしょう。一般提供までの時間)。

于 2012-09-25T19:47:26.490 に答える