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

运行Xalan 2.7.2报SAXParserFactory无法创建错误如何解决?

Xalan 2.7.2 执行报错解决方案

问题根因

报错的核心原因有两个:

  • 启动命令里的依赖包路径存在拼写错误,导致Xalan找不到SAX解析器的实现文件
  • AWS服务器的JDK内置了XML解析实现,和手动引入的Xerces包存在类加载优先级冲突

修复步骤

1. 修正依赖路径

你当前命令中xercesImpl.jar的路径存在明显错误,多拼接了一层/xalan.jar/(xalan.jar是JAR文件不是目录,无法作为路径前缀),原错误路径:
/home/ec2-user/Search_Aids/xalan-jar/xalan-j_2_7_2/xalan.jar/xalan-j_2_7_2/xercesImpl.jar
修正后路径:
/home/ec2-user/Search_Aids/xalan-jar/xalan-j_2_7_2/xercesImpl.jar

2. 添加JVM参数指定解析器实现

为了避免和JDK内置的XML解析实现冲突,需要添加三个系统参数,强制Xalan使用你手动引入的Xerces解析器:

-Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl
-Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
-Djavax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl

3. 关于-FLAVOR s2s=SAX参数说明

该参数作用是指定XSLT使用SAX流模式处理文件,无需加载整个XML为DOM树,适合处理大体积XML时降低内存占用,和本次报错无关,无需移除。

完整修正后的执行命令

java -Xmx3036m \
-Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl \
-Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl \
-Djavax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl \
-Xbootclasspath/a:/home/ec2-user/Search_Aids/xalan-jar/xalan-j_2_7_2/xalan.jar:/home/ec2-user/Search_Aids/xalan-jar/xalan-j_2_7_2/xercesImpl.jar:/home/ec2-user/Search_Aids/xalan-jar/xalan-j_2_7_2/xml-apis.jar \
org.apache.xalan.xslt.Process \
-in dummy.xml \
-xsl /home/ec2-user/Search_Aids/entry.xsl \
-out entry.xml \
-FLAVOR s2s=SAX \
-param dinput d2021.xml \
-param qinput q2021.xml \
-param prev_index_mapping previdxrefs.xml

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:24:00