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

Woodstox设置P_MAX_ENTITY_COUNT报错:无法识别com.ctc.wstx.maxEntityCount

解决Woodstox 6.x中"Unrecognized property 'com.ctc.wstx.maxEntityCount'"错误

问题根源

Woodstox从Codehaus迁移到FasterXML后,6.x版本将配置属性的前缀从com.ctc.wstx改为了com.fasterxml.woodstox。你遇到的错误本质是属性键版本不匹配,即使已确认xmlInputFactory是WstxInputFactory实例,仍可能存在以下问题:

  • 项目中混入了旧版本(org.codehaus.woodstox)的Woodstox类,导致WstxInputProperties是旧版本的,其P_MAX_ENTITY_COUNT常量仍指向旧属性键
  • 类加载器冲突,导致加载的属性常量与工厂类版本不一致

解决方案

方案1:显式使用新版本属性键

直接指定FasterXML Woodstox 6.x对应的属性键:

xmlInputFactory = XMLInputFactory.newInstance();
xmlInputFactory.setProperty("com.fasterxml.woodstox.maxEntityCount", 100000);

方案2:确保导入正确的WstxInputProperties类

检查代码导入,确认使用FasterXML版本的类:

import com.fasterxml.woodstox.stax.WstxInputProperties; // 正确类路径
// 避免导入 com.ctc.wstx.stax.WstxInputProperties(旧版本)

方案3:彻底清理依赖冲突

在build.gradle中强制使用指定版本的Woodstox,并排除所有旧版本依赖:

configurations.all {
    resolutionStrategy {
        // 强制依赖FasterXML的Woodstox 6.5.0
        force 'com.fasterxml.woodstox:woodstox-core:6.5.0'
        // 排除所有Codehaus版本的Woodstox依赖
        exclude group: 'org.codehaus.woodstox', module: 'woodstox-core'
        exclude group: 'org.codehaus.woodstox', module: 'woodstox-core-asl'
    }
}

执行./gradlew dependencies查看依赖树,确认无旧版本Woodstox残留。

方案4:显式实例化WstxInputFactory

绕过XMLInputFactory的SPI加载机制,直接创建FasterXML版本的工厂实例:

import com.fasterxml.woodstox.stax.WstxInputFactory;

// 直接实例化,避免SPI加载带来的类加载问题
xmlInputFactory = new WstxInputFactory();
xmlInputFactory.setProperty(WstxInputProperties.P_MAX_ENTITY_COUNT, 100000);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:17:10