这很奇怪。我正在将一个动态Web项目从Java 8迁移到Java 10。我无法解析的最后一个依赖项是javax.xml.nampace.QName类。您可以在所附的屏幕截图中看到,QName类存在于JRE系统库中,但IDE一直抱怨QName无法解析为类型。
klh5stk11#
可能存在从其他依赖项拉入的重复依赖项。在Eclipse中做1.“导航->打开类型...”1.输入“java.xml.name space”。1.如果您的(Open-)JDK有其他结果,则需要在以下步骤中删除这些结果。在我的例子中,它是XML-API1.在eclipse中打开您的pom.xml,访问依赖层次选项卡,查看哪个依赖拉入了XML-API1.在过滤器中输入“xml-apis”。在我的例子中,拉动XMLAPI的顶级依赖项是“ESAPI”1.将XML-API从ESAPI依赖中排除:
<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.右击您的项目,选择[Maven]->[更新项目...]。检查您的项目,然后单击确定。就这样
izj3ouym2#
从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.nampace.QName。我希望这能帮到你。
piok6c0g3#
尝试更改类路径上元素的顺序。JRE必须在Maven依赖项之前。这就解决了问题。我的猜测是,Java 10编译器注意到您试图用JAR中的代码替换内部类(java.xml.namespace),它不喜欢这样。
java.xml.namespace
tct7dpnv4#
通过从项目类路径(项目->属性->Java构建路径->库->类路径)中删除jsr173_api.jar解决了这个问题。当重新构建eclipse项目时,它会再次出现。
agyaoht75#
这招奏效了!正在检查多类型Ctrl+Shift+T,删除不需要的类型。
xsuvu9jc6#
我在使用JRE 11和Gradle 7.5时也有过同样的经历。如果它对任何人都有帮助,您可以排除XML-API,如下所示:
configurations { all { exclude group: 'xml-apis', module: 'xml-apis' } }
6条答案
按热度按时间klh5stk11#
可能存在从其他依赖项拉入的重复依赖项。
在Eclipse中做
1.“导航->打开类型...”
1.输入“java.xml.name space”。
1.如果您的(Open-)JDK有其他结果,则需要在以下步骤中删除这些结果。在我的例子中,它是XML-API
1.在eclipse中打开您的pom.xml,访问依赖层次选项卡,查看哪个依赖拉入了XML-API
1.在过滤器中输入“xml-apis”。在我的例子中,拉动XMLAPI的顶级依赖项是“ESAPI”
1.将XML-API从ESAPI依赖中排除:
1.右击您的项目,选择[Maven]->[更新项目...]。检查您的项目,然后单击确定。
就这样
izj3ouym2#
从Java 8迁移到Java 11时,我遇到了相同的错误,并且我包含了对StAX-API 1.0-2库的显式依赖:
并排除了对StAX-API 1.0.1库的任何过渡依赖:
之后,我的IDE正确地找到了丢失的导入javax.xml.nampace.QName。
我希望这能帮到你。
piok6c0g3#
尝试更改类路径上元素的顺序。JRE必须在Maven依赖项之前。这就解决了问题。
我的猜测是,Java 10编译器注意到您试图用JAR中的代码替换内部类(
java.xml.namespace
),它不喜欢这样。tct7dpnv4#
通过从项目类路径(项目->属性->Java构建路径->库->类路径)中删除jsr173_api.jar解决了这个问题。当重新构建eclipse项目时,它会再次出现。
agyaoht75#
这招奏效了!正在检查多类型Ctrl+Shift+T,删除不需要的类型。
xsuvu9jc6#
我在使用JRE 11和Gradle 7.5时也有过同样的经历。如果它对任何人都有帮助,您可以排除XML-API,如下所示: