java - GAE 1.7 JSF 2 部署问题

标签 java google-app-engine jsf jsf-2 web-deployment

我按照本指南创建了一个 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-run-on-the-google-app-engine-using-eclipse

当我在本地运行它时,我工作得很好,但是当我尝试在 GAE 上部署该应用程序时,出现以下错误:

servlet 中未捕获的异常 java.lang.UnsupportedClassVersionError: com/sun/faces/config/WebConfiguration 在 com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:163) 在 org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548) 在 org.mortbay.jetty.servlet.Context.startContext(Context.java:136) 在 org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) 在 org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) 在 org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 在 com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:202) 在 com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:171) 在 com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123) 在 com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:477) 在 com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449) 在 com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455) 在com.google.tracing.TraceContext.runInContext(TraceContext.java:695) 在 com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333) 在 com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) 在 com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) 在 com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251) 在 java.lang.Thread.run(Thread.java:679)

发生了什么事?我正在考虑这个新的 1.7 JDK 负责它。 在本地运行时,我需要使用“-XX:-UseSplitVerifier”来正确构建项目。也许 GAE JDK 正在使用其他规范构建它并导致此问题。我真的不知道。

主要问题是: 我该如何解决这个问题?

最佳答案

引用自文档 here

Java 运行时环境

App Engine 使用 Java 6 虚拟机 (JVM) 运行 Java 应用程序。 App Engine SDK 支持 Java 5 及更高版本,Java 6 JVM 可以使用使用任何版本的 Java 编译器(最高可达 Java 6)编译的类。

所以是的,JDK 1.7 版本有问题。在 1.6 中编译您的项目,应该没问题!

关于java - GAE 1.7 JSF 2 部署问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11993941/

相关文章:

Python/WebApp Google App Engine - 测试用户/通过 header

python - 如何计算 Google App Engine 中多对多关系的双方

Eclipse 对 JSF 文件中的 EL 表达式给出了太多错误和警告

java - Apache Derby 作为 Windows 服务

java - 使用 JVisualVM 从 Java 中的远程应用程序获取堆转储

java - 使用 Hadoop 将文本文件中的段落作为单个记录处理

java - Android中的简单音频播放停止

asp.net - 集成 .NET 应用程序和 Google Apps 的策略

java - 修改richfaces中组合框按钮的背景

java - JSF 2.1 Web 应用程序上的 Spring Security