这很奇怪。我正在将一个动态Web项目从Java 8迁移到Java 10。
我无法解决依赖关系的最后一件事是javax.xml.namespace.QName类。
答案 0 :(得分:3)
可能从其他依赖项中提取了一个重复的依赖项。
在日食中
从esapi依赖项中排除xml-api:
<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>
就这样
答案 1 :(得分:2)
尝试更改类路径上元素的顺序。 JRE必须在Maven依赖项之前。解决了这个问题。
我的猜测是Java 10编译器注意到您正在尝试用JAR中的代码替换内部类(java.xml.namespace
),并且它不是那样。
答案 2 :(得分:0)
从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。
我希望这会有所帮助。
答案 3 :(得分:0)
通过从项目类路径(项目->属性-> Java构建路径->库->类路径)中删除jsr173_api.jar来解决。 Eclipse项目重建时再次出现。
答案 4 :(得分:0)
这奏效了!检查多种类型 Ctrl+Shift+T,删除不需要的。