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

Spring Integration应用war包部署Weblogic 12.2.1.3失败问题求助

问题根因

该报错为Weblogic自带依赖和应用依赖版本不兼容导致的类校验错误:

  • Weblogic 12.2.1.3内置的jackson-core版本低于2.10,该版本中JsonFactory尚未实现TokenStreamFactory接口
  • 你的Spring Integration应用引入的jackson-databind版本≥2.10,该版本中MapperBuilder.streamFactory()方法的返回值为TokenStreamFactory类型
  • Weblogic默认类加载机制优先加载服务器自带的jar包,运行时加载到低版本jackson-core类,和高版本jackson-databind类不匹配,因此抛出该异常。

IDE和jar包运行时直接使用应用内部配置的依赖版本,无服务器自带旧包的干扰,所以运行正常。你之前尝试排除spring-starter-json替换为gson的方案不生效,大概率是未调整Weblogic的类加载优先级,或是应用其他依赖仍间接引入了Jackson相关类。

解决方案

按以下步骤处理即可解决问题:

  • 第一步:在war包的WEB-INF目录下新增weblogic.xml配置文件,指定优先加载应用内部的Jackson依赖,覆盖服务器自带的低版本包
    配置示例:
    <?xml version="1.0" encoding="UTF-8"?>
    <weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                      xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.9/weblogic-web-app.xsd">
        <container-descriptor>
            <prefer-application-packages>
                <package-name>com.fasterxml.jackson.*</package-name>
            </prefer-application-packages>
            <prefer-application-resources>
                <resource-name>com.fasterxml.jackson.*</resource-name>
            </prefer-application-resources>
        </container-descriptor>
    </weblogic-web-app>
    
  • 第二步:统一应用内所有Jackson组件的版本,确保jackson-core、jackson-databind、jackson-annotations等相关依赖的版本完全一致,建议使用2.13.x及以上的稳定版本,避免应用内部出现版本冲突。
  • 第三步:如果业务场景确实不需要使用Jackson,可彻底排除所有Jackson相关的传递依赖,同时检查Spring Integration组件是否存在硬依赖Jackson的模块,按需做适配替换即可。

内容的提问来源于stack exchange,提问作者Aron Mosha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:42:02