java.xml XMLConstants.FEATURE_SECURE_PROCESSING 无法解析或不是字段

Posted

技术标签:

【中文标题】java.xml XMLConstants.FEATURE_SECURE_PROCESSING 无法解析或不是字段【英文标题】:java.xml XMLConstants.FEATURE_SECURE_PROCESSING cannot resolve or not is a field 【发布时间】:2017-12-07 17:44:22 【问题描述】:

我使用 Eclipse、Spring MVC 和 Maven。Java 版本是 1.6

我有以下方法

public static DocumentBuilder getBuilder(ServletContext servletContext)

 DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();
        factory.setValidating(true);            

        DocumentBuilder builder = null;
        try 
            factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
            builder = factory.newDocumentBuilder();

我在eclipse编辑器中出现错误:

factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING,

错误是

FEATURE_SECURE_PROCESSING cannot be resolved or not is a field

在编辑器 Eclipse 中我看到:

Maven 依赖项是:

为什么我没有变量

XMLConstants.FEATURE_SECURE_PROCESSING ?

【问题讨论】:

【参考方案1】:

您的类路径中的一个库包含旧版本的javax.xml.XMLConstants。您需要找到并删除该库。尝试使用Ctrl + Shift + T 或在Eclipse 中选择Navigate -> Open Type 来查找有问题的jar 文件。

此外,您至少有两个库,Xerces 和 Xalan,它们不是必需的,可以删除,因为它们与 JDK 捆绑在一起。

【讨论】:

这对我一点帮助都没有 在我的例子中,它是与 Apache POI 库捆绑在一起的 STAX API。使用@Ale 的解决方案。此解决方案应该有助于排除 pom.xml 中的 jar。谢谢!【参考方案2】:

我不知道是否有你的情况,但我解决了在我的 Java 项目构建路径中配置源文件夹的问题,遵循以下步骤:

    右键单击项目并选择“属性” 从左侧菜单中选择“Java Build Path” 选择“订购和导出”标签 将“JRE 系统库”移到顶部并应用

这样,Java 库在其他库之前使用。

【讨论】:

以上是关于java.xml XMLConstants.FEATURE_SECURE_PROCESSING 无法解析或不是字段的主要内容,如果未能解决你的问题,请参考以下文章

Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullPointerException

java xml节点添加修改属性

Java xml遍历

java xml 写了一段代码 属性里的默认值出不来

Java: xml转换

JAXB - java xml解析