0

このガイドに従って、JSF 2.1 プロジェクトを作成し、Google App Engine にデプロイしました。

https://sites.google.com/a/wildstartech.com/adventures-in-java/Java-Platform-Enterprise-Edition/JavaServer-Faces/javaserver-faces-21/configuring-javaserver-faces-21-to- Eclipse を使用した Google アプリ エンジンでの実行

ローカルで実行すると問題なく動作しますが、GAE でアプリをデプロイしようとすると、次のエラーが発生します。

Uncaught exception from servlet java.lang.UnsupportedClassVersionError: com/sun/faces/config/WebConfiguration at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:163) 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.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:202) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:171) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123) at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:477) at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449) at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455) at com.google.tracing.TraceContext.runInContext(TraceContext.java:695) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251) at java.lang.Thread.run(Thread.java:679)

何が起こっている?私は、この新しい 1.7 JDK がそれを担当していることを考えています。ローカルで実行する場合、プロジェクトを正しくビルドするには、「-XX:-UseSplitVerifier」を使用する必要があります。おそらくGAE JDKが他の仕様でビルドしており、これが原因です。本当にわからない。

主な質問は次のとおりです。これをどのように解決しますか?

4

1 に答える 1

1

ここのドキュメントから引用

Java ランタイム環境

App Engine は、Java 6 仮想マシン (JVM) を使用して Java アプリケーションを実行します。App Engine SDK は Java 5 以降をサポートし、Java 6 JVM は Java 6 までの任意のバージョンの Java コンパイラでコンパイルされたクラスを使用できます。

そうです、JDK 1.7 バージョンに問題があります。プロジェクトを 1.6 でコンパイルすれば問題ありません。

于 2012-08-17T00:03:21.200 に答える