You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Jackson Databind至2.10.0后Weblogic启动报NoClassDefFoundError问题

Jackson升级后Weblogic启动报错排查与解决

问题背景

我负责的项目需要将com.fasterxml.jackson.core下的jackson-databind从2.9.10.4版本升级至2.10.0版本(这是满足漏洞修复要求的最低版本)。本地构建、Jenkins构建部署均正常,但重启Weblogic服务器时,某war包出现以下错误,该问题在升级前未出现。推测是升级后的Jackson核心库移除了相关类,需新增依赖,但未找到相关文档佐证。

错误日志

java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonProcessingException

    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
    at java.lang.Class.getDeclaredConstructors(Class.java:2020)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:231)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineConstructorsFromBeanPostProcessors(AbstractAutowireCapableBeanFactory.java:1004)

Caused By: java.lang.ClassNotFoundException: org/codehaus/jackson/JsonProcessingException

    at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:1029)
    at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:990)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:101)
    at weblogic.utils.classloaders.GenericClassLoader.doFindClass(GenericClassLoader.java:611)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:543)

当前Jackson依赖配置

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

问题根源与解决方案

问题根源

org.codehaus.jackson.JsonProcessingException是旧版Jackson(codehaus包族)的核心类,而你升级的是新版Jackson(fasterxml包族)。升级后项目中仍有代码依赖旧版Jackson的类,导致Weblogic类加载时找不到对应的类文件。

解决步骤

  1. 替换代码中的旧版Jackson引用
    全局搜索项目代码中的org.codehaus.jackson相关导入,替换为com.fasterxml.jackson对应的类:

    • 将import org.codehaus.jackson.JsonProcessingException;替换为import com.fasterxml.jackson.core.JsonProcessingException;
    • 其他旧版类(如ObjectMapper)也需同步替换为com.fasterxml.jackson.databind.ObjectMapper
  2. 临时兼容方案(无法批量修改代码时)
    如果暂时无法修改所有代码,可添加旧版Jackson核心依赖,保证类能被正常加载:

    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>1.9.13</version>
        <scope>provided</scope> <!-- 根据项目实际情况调整scope,避免版本冲突 -->
    </dependency>
    
  3. 排查并解决依赖冲突
    使用Maven命令查看项目依赖树,检查是否有其他依赖间接引入了旧版Jackson:

    mvn dependency:tree
    

    若发现冲突,可通过<exclusions>标签排除不需要的旧版依赖:

    <dependency>
        <!-- 存在冲突的依赖 -->
        <groupId>xxx</groupId>
        <artifactId>xxx</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    

内容的提问来源于stack exchange,提问作者Jack Parker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 19:45:29