这很奇怪。我正在将一个动态 Web 项目从 Java 8 迁移到 Java 10。
我无法解决依赖关系的最后一件事是 javax.xml.namespace.QName 类。
可能存在从其他一些依赖项中提取的重复依赖项。
在日食做
从 esapi 依赖项中排除 xml-apis:
<dependency>
<groupId>org.owasp.esapi</groupId>
<artifactId>esapi</artifactId>
<version>2.2.0.0</version>
<exclusions>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
</exclusions>
</dependency>
而已
从 Java 8 迁移到 Java 11 时我遇到了同样的错误,并且我包含了对库 stax-api 1.0-2 的显式依赖:
<dependency>
<groupId>javax.xml.stream</groupId>
<artifactId>stax-api</artifactId>
<version>1.0-2</version>
</dependency>
并排除对库 stax-api 1.0.1 的任何过渡依赖:
...
<exclusion>
<groupId>stax</groupId>
<artifactId>stax-api</artifactId>
</exclusion>
...
在此之后,我的 IDE 正确找到了丢失的导入 javax.xml.namespace.QName。
我希望这有帮助。
尝试更改类路径中元素的顺序。JRE 必须在 Maven 依赖项之前。这解决了这个问题。
我的猜测是 Java 10 编译器注意到您正在尝试java.xml.namespace
用 JAR 中的代码替换内部类 ( ),但它不喜欢这样。
通过从项目类路径(项目 -> 属性 -> java 构建路径 -> 库 -> 类路径)中删除 jsr173_api.jar 来解决它。eclipse项目重建时再次出现。
这行得通!检查多种类型Ctrl++ ,删除不需要的。ShiftT