栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JSON解析器-java.lang.NoSuchFieldError:defaultReader

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSON解析器-java.lang.NoSuchFieldError:defaultReader

偶然发现了同样的问题。

它不起作用的原因不是JDK8。之所以遇到此问题,是因为weblogic 12.2.1.X捆绑了一些旧版本的json-smart。

在我的机器上,可以在这里找到:jar:file:/
C:/dev/WLS_12_2_1_2_0/oracle_common/modules/net.minidev.json-
smart.jar!/net/minidev/json/JSONValue.class

现在,如果您使用的是依赖于json-smart的库,例如json-path,那么默认情况下,容器将使用其内置模块之一加载所需的类。

您遇到的麻烦似乎是您的json路径所依赖的JSONValue类似乎具有此defaultReder字段。这是正在爆炸的凝块的片段。

 public JsonSmartJsonProvider() {        this(JSONParser.MODE_PERMISSIVE, JSONValue.defaultReader.DEFAULT_ORDERED);    }

JSONValue.defaultReader

似乎在Weblogs较早的系统类加载器类上无效。

您可以通过将如下所示的内容放入weblogic.xml部署描述符中来告诉容器使用您要打包的内容:

<wls:prefer-application-packages>       <wls:package-name>net.minidev.json.*</wls:package-name>        </wls:prefer-application-packages>

让weblogic吞下上述细粒度的指令给我带来了很多麻烦。我发现自己强迫weblogic将进入web-inf文件夹的所有内容都记录下来,而不是做:

 <wls:container-descriptor>        <wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes>      </wls:container-descriptor>

我宁愿不像web-inf-class那样使用锤子,但是当我不粗粒度的时候,我正在与weblogic系统类加载器共舞…

问候。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/418366.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号