java – TransformerFactory和Xalan依赖冲突

我有以下代码:

javax.xml.transform.TransformerFactory factory = TransformerFactory.newInstance();
factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
javax.xml.transform.Transformer transformer = factory.newTransformer();

这通常很好.但是,我还需要在我的pom.xml中添加Xalan作为依赖项,当我这样做时,上面的代码现在抛出一个错误:

java.lang.IllegalArgumentException: Not supported: http://javax.xml.XMLConstants/property/accessExternalDTD

我认为这与Xalan的jar在其中有不同的Transformer实现有关.如何在不更改上述代码并将Xalan保持为依赖关系的情况下解决此冲突?

最佳答案
从Xalan中排除Xerces解决了这个问题:

<dependency>
    <groupId>xalan</groupId>
    <artifactId>xalan</artifactId>
    <version>2.7.2</version>
    <exclusions>
        <exclusion>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
        </exclusion>
    </exclusions>
</dependency>

转载注明原文:java – TransformerFactory和Xalan依赖冲突 - 代码日志