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

Docx4J实现docx转PDF遇类缺失异常,求助依赖排查

docx转PDF依赖缺失与Java17兼容性问题排查方案

问题根源

报错Cannot find class 'org.docx4j.convert.out.common.XsltCommonFunctions'是因为缺少docx4j转换模块的核心依赖;后续出现的SAXParser实例化异常,则是Java17模块系统限制与依赖版本冲突共同导致的。

1. 补全核心依赖

XsltCommonFunctions属于docx4j-convert-common模块,必须添加到pom.xml中,同时统一使用适配Java17的docx4j版本(推荐11.4.8),避免版本不一致引发问题:

<!-- 统一docx4j版本,适配Java17 -->
<dependency>
    <groupId>org.docx4j</groupId>
    <artifactId>docx4j-convert-common</artifactId>
    <version>11.4.8</version>
</dependency>
<dependency>
    <groupId>org.docx4j</groupId>
    <artifactId>docx4j-JAXB-MOXy</artifactId>
    <version>11.4.8</version>
</dependency>
<dependency>
    <groupId>org.docx4j</groupId>
    <artifactId>docx4j-export-fo</artifactId>
    <version>11.4.8</version>
</dependency>

<!-- 更新SLF4J到兼容Java17的版本 -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.36</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.36</version>
</dependency>

2. 解决SAXParser实例化异常

Java17限制了对JDK内部API的访问,添加Xalan依赖时要避免和JDK自带组件冲突,同时添加VM参数解除限制:

添加Xalan相关依赖

<dependency>
    <groupId>xalan</groupId>
    <artifactId>xalan</artifactId>
    <version>2.7.3</version>
</dependency>
<dependency>
    <groupId>xalan</groupId>
    <artifactId>serializer</artifactId>
    <version>2.7.3</version>
</dependency>

添加VM启动参数

在运行程序时加入以下参数:

--add-opens java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED
--add-opens java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED

3. 排查依赖冲突

执行mvn dependency:tree查看依赖树,排除重复或版本不一致的组件(比如不同版本的Xalan、Xerces),确保所有docx4j相关依赖版本完全一致。

额外注意事项

  • 不要混合使用不同版本的docx4j模块,可通过dependencyManagement节点统一管控版本,防止版本漂移。
  • 若仍有问题,检查项目是否开启了Java模块系统(module-info.java),需为docx4j相关模块添加requires声明。

内容的提问来源于stack exchange,提问作者Hendrik Hötker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:50:23