我有以下代码:

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

这正常工作。但是,我还需要将Xalan作为依赖项添加到pom.xml中,当我这样做时,上面的代码现在会引发错误:
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依赖冲突,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45152707/

10-09 06:14