【问题标题】:App Engine requires Java 1.7 or laterApp Engine 需要 Java 1.7 或更高版本
【发布时间】:2014-10-26 07:43:09
【问题描述】:

我在 Java 1.7、GAE 1.9.9、GWT 2.6.1 和 Maven 中开发了 GWT 应用程序。 现在我意识到我们有带有 Java 1.6.0_43 的 Glassfish 服务器。 所以我改变了它,也将 GWT 更改为 2.1.1 以使应用程序更小,但 Eclipse 显示错误:“App Engine 需要 Java 1.7 或更高版本。” 尝试将 GAE 更改为 1.7.5 和 1.6.6 并且错误仍然存​​在。 我无法弄清楚似乎是什么问题。

我应该使用什么 GAE 来使用 Java 1.6 编译我的应用程序并将其放在带有 Java 1.6 的 Glassfish 上? 或者这不是 GAE 问题,而是其他问题?

也可以将我的 gwt-servler.jar 放在 Glassfish 库中以使我的战争更小吗?我可以回到 GWT 2.6.1 并为我的应用添加一些功能。

如果我发布到 glassfish,我根本不需要 GAE,只需要 gwt-servler.jar?

【问题讨论】:

    标签: java google-app-engine maven gwt glassfish


    【解决方案1】:

    Google 应用引擎使用现在必须使用的 Java 7。在 GAE 平台上,您的 Web 应用程序在 Jetty 服务器上运行。

    Google App Engine 1.8.1 版是支持 Java 6 的最后一个版本(2013 年 6 月 11 日发布)。从 1.8.2 开始,SDK 仅使用 Java 7 编译器进行编译,并且唯一的目标运行时是 Java 7。

    为什么需要 Glassfish + GAE + Java 6?如果您为 GAE 开发,则不能使用 Glassfish。应用引擎 sdk 包含一个捆绑的 Jetty,因此您不需要它来进行开发,当然也不需要用于生产。

    如果你不为 App 引擎平台开发,那为什么你的项目需要是 GAE 项目呢?看起来很矛盾。

    要么从您的项目中删除 GAE 依赖项(和库),要么使用 Java 7 而不是 Glassfish(但应用引擎 SDK 包含捆绑的 Jetty 服务器)。

    编辑:

    如果您有 Glassfish,并且不想将您的网络应用发布到 Google App Engine,则根本不需要 GAE。 GWT 还包括对开发有用的 Servlet api,Glassfish 是一个包含 Servlet API 实现的应用服务器(servlet 容器)。

    我想你弄糊涂了。 Google App Engine 是一个平台(平台即服务),您只需要将您的项目设为 GAE 项目,并且如果您想专门为 GAE 平台创建和部署您的 web 应用程序,您只需添加 GAE 库和依赖项。

    【讨论】:

    • 我尝试了 GAE 1.7.5,它仍然抛出同样的错误。使用 GWT 并在 Glassfhis 上发布应用程序不是我的选择。我只需要按照我被告知的去做。使用 Java 1.7 一切正常,并且可以重新部署应用程序,但我必须使其与 Java 1.6 和 Glassfish 3.1 一起使用,这里没有选择。
    • 您能回答我在这个答案中提出的问题吗?您可以编辑您的问题以添加这些内容。
    • 我想我误解了 GAE 的使用。但是现在我在运行 GWT compile 时遇到了另一个问题。 java.lang.UnsupportedClassVersionError:javax/persistence/Entity:不支持的major.minor 51.0版。我已将 JAVA_HOME 更改为 1.6,Eclipse 默认 jre 更改为 Java 1.6,在 pom.xml 源和目标是 1.6,但我收到此错误,并且在错误的事件详细信息中:Message=GWT 编译失败和会话数据:java.version=1.7 .0_60。为什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 2016-03-28
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 2016-12-31
    相关资源
    最近更新 更多