gpt4 book ai didi

jackson - 如何处理 Glassfish 包含的库与应用程序提供的库崩溃的情况?

转载 作者:行者123 更新时间:2023-12-02 18:17:14 26 4
gpt4 key购买 nike

我的 CXF JAX-RS 应用程序使用 jackson 将 POJO 编码为 JSON。这在大多数情况下都有效,但有一天,在编码深度嵌套对象时,它因 NPE 而失败。

经过一番调查,我发现 Jackson 已包含在 Glassfish 3 中(通过 Jersey),并且删除了 jackson-core-asl.jar、jackson-jaxrs.jar、jackson-mapper-asl.jar 和 jackson-xc.jar 一切都工作得很好。我猜想 Jackson 1.7.1(包含在 GF3 中)有一些错误,这些错误已在我的应用程序(1.8)附带的版本中修复。

现在的问题是,为什么我首先必须这样做?我本以为我的 war 文件中包含的库应该优先于 Glassfish 的 /modules 目录中的任何库。

有没有比从应用程序服务器中删除 jar 更干净的方法?也许还有其他应用程序依赖于这些 jar...

顺便说一句,我们的 GF2 容器仍然存在问题,但我在 /lib 文件夹中找不到任何 jackson 库(没有 /modules 文件夹(如 GF3 中所示)。关于 jackson 在《GF2》中可能藏身何处的任何线索(如果有的话)?

最佳答案

告诉 Web 应用类加载器首选 WAR 提供的 JAR。

添加 WEB-INF/sun-web.xml(或 WEB-INF/glassfish-web.xml):

...
<class-loader delegate="false"/>
...

参见http://jersey.java.net/nonav/documentation/latest/glassfish.html#d4e1927

关于jackson - 如何处理 Glassfish 包含的库与应用程序提供的库崩溃的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6759633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com