簡體   English   中英

Java 8上的Google App Engine - 開發時無法使用java.time。 服務器?

[英]Google App Engine on Java 8 - java.time not available on dev. server?

我已將我的Google App Engine應用程序移植到最近的Java 8運行時環境中。 該應用程序工作正常,有一些問題。

我已將我的代碼移植到使用java.time而不是Joda時間,但是應用程序引擎服務器在響應請求時拋出錯誤:

java.lang.NoClassDefFoundError:java.time.ZonedDateTime是一個受限制的類。 有關詳細信息,請參閱Google App Engine開發人員指南。

在com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:50)

這只發生在開發服務器上,生產服務器似乎運行正常。

文件說

  • 不像Java 7運行時那樣強加安全管理器,這意味着您的代碼不會受到Java權限問題的限制。
  • 支持標准的公共Java庫,而不僅僅是可用於Java 7運行時的白名單類子集。

在搜索此錯誤時,我發現有關禁止文件訪問的提及,我理解,但我不知道這是如何適用於java.time包的。 此外,我發現的提及(就像這個問題 )似乎與Java 7運行時環境有關。

這不是很緊迫,我可以留在Joda時間,但這對我來說是一個驚喜。

這是預期的,還是一個錯誤,或者我做錯了什么?

我可以確認我在開發環境和生產服務器中都使用Java8功能,包括java.time。

它可能是用於運行您的開發服務器的Java 7 SDK。 檢查構建環境設置。

確保您的WEB-INF / lib中有最新的應用程序引擎API jar。

您還需要將java8添加到appengine-web.xml

面對同樣的問題。 它似乎與InteliJ插件一樣。 從maven插件運行作為解決方法。

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM