java - 升级到 Java8 和端点 V2 后出现 AppEngine 错误
问题描述
在升级到 Java 8 和端点升级到 V2 之后,我不断收到服务器错误并在我的 appengine 日志中收到以下错误:
com.google.apphosting.runtime.jetty9.JettyLogger warn: Error xxxxxxxxx (JettyLogger.java:29)
java.lang.NoClassDefFoundError: com/google/appengine/repackaged/com/google/gson/JsonElement
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2673)
at java.lang.Class.getConstructor0(Class.java:3077)
at java.lang.Class.newInstance(Class.java:413)
解决方案
原来这是因为作为应用程序引擎升级的一部分,以下语句不再有效
import com.google.appengine.repackaged.com.google.gson.Gson;
import com.google.appengine.repackaged.com.google.gson.GsonBuilder;
...
Gson gson = new GsonBuilder().create();
您需要改用新的 Json 库:
1) 向您的 gradle 文件添加新的依赖项:
compile 'com.google.code.gson:gson:2.8.1'
2) 替换
import com.google.appengine.repackaged.com.google.gson.Gson;
import com.google.appengine.repackaged.com.google.gson.GsonBuilder;
和
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
推荐阅读
- android - Android ACR122U NFC 集成
- javascript - 在 ng build angular 中运行严格编译
- tableau-api - Tableau Online 与 Tableau Server
- java - 何时使用acquireTokenByRefreshToken 与acquireToken
- javascript - 如何在 React 中向道具添加新属性?
- python - 将 Pandas DataFrame 中的嵌套字典转换为列表示
- python - 我可以使用一些客户端缓存在仪表板上进行“大数据”动态可视化吗?
- css - 动态内容(行)占用过多高度的表格
- sql-server - 在 Sql Server 2008 R2 上运行的 SSIS 2017
- razor - 在 dotnet core 2 中生成 Razor HTML 电子邮件