Java8上的Google应用程序引擎-Java.time在开发服务器上不可用?

Java8上的Google应用程序引擎-Java.time在开发服务器上不可用?,java,google-app-engine,java-8,java-time,Java,Google App Engine,Java 8,Java Time,我已经将我的GoogleAppEngine应用程序移植到最近的Java8运行时环境中。该应用程序运行良好,但存在一些问题 我已将代码移植为使用java.time而不是Joda time,但app engine服务器在响应请求时抛出错误: java.lang.NoClassDefFoundError:java.time.ZoneDateTime是一个受限类。有关更多详细信息,请参阅谷歌应用程序引擎开发者指南 位于com.google.appengine.tools.development.agen

我已经将我的GoogleAppEngine应用程序移植到最近的Java8运行时环境中。该应用程序运行良好,但存在一些问题

我已将代码移植为使用java.time而不是Joda time,但app engine服务器在响应请求时抛出错误:

java.lang.NoClassDefFoundError:java.time.ZoneDateTime是一个受限类。有关更多详细信息,请参阅谷歌应用程序引擎开发者指南

位于com.google.appengine.tools.development.agent.runtime.runtime.reject(runtime.java:50)

这只发生在开发服务器上,生产服务器似乎运行正常

委员会:

  • 不会像Java 7运行时那样强制使用安全管理器,这意味着您的代码不会受到Java权限问题的限制
  • 支持标准的公共Java库,而不仅仅是Java 7运行时可用的白名单类子集
在搜索此错误时,我发现有人提到禁止文件访问,我理解这一点,但我不知道这如何适用于
java.time
package。此外,我发现(像这样)提到的内容似乎是关于Java7运行时环境的

这不是很紧迫,我可以和乔达呆在一起,但这对我来说是一个惊喜


这是预期的,还是一个bug,还是我做错了什么?

我可以确认我在开发环境和生产服务器中都使用了Java8功能,包括java.time

它可能是一个Java7SDK,用于运行您的开发服务器。检查生成环境设置

确保您的WEB-INF/lib中有最新的应用程序引擎API JAR


您还需要将java8添加到appengine web中。xml也面临同样的问题。它似乎是用InteliJ插件实现的。从maven插件运行,作为一种解决方法


听到这个消息很有意思,谢谢。我遵循了您的清单,到目前为止运气不太好:Dev服务器运行在Java\jdk1.8.0_92\bin上,WEB-INF/lib包含appengine-api-1.0-sdk-1.9.54.jar,appengine-WEB.xml包含java8。我的构建环境有点不寻常,我使用的是Scala、IntelliJ IDEA和SBT,但我认为这不应该在这里发挥任何作用。您是使用App Engine SDK还是新的云SDK?我确认我也在使用IntelliJ。我将尝试检查您的解决方法-我希望我能够做到,我没有Maven或其插件的经验。我在Scala+sbt设置中面临同样的问题。看起来很奇怪,因为文档承诺java8时间API是完全支持的。你还发现了什么吗?我一直和乔达在一起,我再也没有尝试过了。