我最近将eclipse Java项目转换为动态Web项目.在项目之前和之后列出的导入jar都是相同的,但是对动态Web项目的更改会导致以下编译错误:
W3C_XML_SCHEMA_NS_URI cannot be resolved or is not a field
Run Code Online (Sandbox Code Playgroud)
由以下代码行抛出:
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Run Code Online (Sandbox Code Playgroud)
我已经研究过这个错误,它似乎被javax.xml.XMLConstants不同罐子里的冲突版本所抛出,但是我比较了两个项目中的罐子列表并且它们是相同的,所以我认为必须改变罐子的顺序.怎么做到这一点?
部分解决方案可能在逻辑上涉及确定哪些罐包含名为的包javax.xml.XMLConstants.所以我按照@ DiogoSantana的建议,使用Type向导在以下打印屏幕中获得结果:
然后我按照DiogoSantana的建议运行mvn dependency:tree并得到以下结果:

我接下来做了以下更改pom.xml:
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.7</version>
<exclusions>
<exclusion>
<groupId>jsr173_api</groupId>
</exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)
然后我mvn clean install在刷新eclipse项目之前运行,甚至maven..update project在eclipse中运行,但错误仍然存在.
注意:搜索字符串infoset中pom没有产生任何结果,所以我尝试了下一个更高级别jar.
小智 51
我有同样的问题,并通过执行以下操作来解决它:
如今(在 Java 6 及更高版本中),您不需要任何显式的 JAXB、JAX-WS、XML Streaming API (JSR-173) 或 SAAJ jar,因为它们都包含在 JDK 中。还有许多其他非 xml 相关的 API 通常也可用,例如 javax.activation。
如果您的环境是 Java 6 或更高版本,您应该排除与这些相关的任何内容。
| 归档时间: |
|
| 查看次数: |
14346 次 |
| 最近记录: |