gpt4 book ai didi

java - JBoss EAP 7 中缺少 Jackson 依赖项

转载 作者:太空宇宙 更新时间:2023-11-04 11:07:20 25 4
gpt4 key购买 nike

我们在 JBoss EAP 环境中使用 jackson-databind 时遇到问题。我们通常部署到 Tomcat 8,它可以完美运行。 Jackson 它通常会自行反序列化对象,但是当:mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); 执行后我们收到此错误:

13:18:26,170 ERROR java.lang.NoSuchFieldError: SNAKE_CASE

我对错误进行了相当多的解释,但似乎 JBoss 找不到 jackson-databind 依赖项。我们验证了该类确实位于已部署的 WAR 文件中。这就是我们 POM 中的内容:

    <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.9</version>
</dependency>

当我们将 Java 类复制到代码库中时,它可以在 JBoss 上完美运行,但这显然并不理想。有人见过 JBoss 没有找到依赖吗?

最佳答案

Jackson databind 已作为 JBoss 模块存在,因此您的异常是应用程序部署期间库加载冲突的结果。
更准确地说,Jackson databind 位于 jboss-eap-7.0\modules\system\layers\base\com\fasterxml\jackson\core\jackson-databind\main\在版本 2.5.4 中。因此,您应该将 Maven 依赖项设置为 <scope>provided</scope> .
但是,您请求的 2.5.4 和 2.8.9 之间存在一些更改。你没有提到你打算使用Jackson的哪些功能,但至少你不能使用SNAKE_CASE因为它在旧版本中尚不存在。一种选择是您可以回退到旧版本 CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES 。如果这是 Not Acceptable ,您将必须使用 jboss-deployment-structure.xml 自定义 JBoss 类加载。 。使用此描述符,您可以选择排除 JBoss 模块提供的 jackson 数据绑定(bind),然后可以将 jackson 库与您的部署捆绑在一起。您可以在 JBoss/Wildfly wiki 中找到更多信息。

关于java - JBoss EAP 7 中缺少 Jackson 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46366031/

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