我在解组课时收到此错误 . 我正在使用亚马逊的mTurks以及Spring,Maven和(惊喜,惊喜)一个xerces问题已经引起了人们的关注 .
我用不同的方式玩POM试图解决问题,但我似乎无法找出解决方案 .
我正在使用这里发现的mvenurks版本:https://github.com/tc/java-aws-mturk
我明确地从mturks中排除了xerces的东西:
<dependency>
<groupId>com.amazon</groupId>
<artifactId>java-aws-mturk</artifactId>
<version>1.2.2</version>
<exclusions>
<exclusion>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
</exclusion>
<exclusion>
<groupId>apache-xerces</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
<exclusion>
<groupId>apache-xerces</groupId>
<artifactId>resolver</artifactId>
</exclusion>
<exclusion>
<groupId>apache-xerces</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
</exclusions>
</dependency>
并明确包含xerces-impl和xml-api依赖项:
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
<version>1.4.01</version>
</dependency>
我已尝试使用xercesImpl版本2.9.1,2.11.0和xml-apis版本1.4.01,2.0.2的所有四种组合无济于事 .
xercesImpl 2.11.0和xml-api 2.0.2会导致不同的错误:
java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal
我该如何解决这个问题?
2 回答
这不是特定于mturks,但这是一种在eclipse中查找xerces冲突以解决问题的一般方法 .
在eclipse编辑器中打开pom.xml并切换到"Dependency Hierarchy"选项卡
在右上角的“过滤器”框中,键入“xerces”
拉入xercesImpl的依赖项将播放在左侧的“Dependency Hierarchy”窗格中
右键单击有问题的xercesImpl条目并选择"Exclude Maven Artifact..." . 这将更新您的pom,排除将解决冲突
请务必按ctrl-s保存您的pom更改
这是原始pom.xml中之前和之后的示例(eclipse在上面的步骤中为您做了这个:
之前
后
通过这个简单的更改,您可以避免“由于限制设置而导致访问不允许...”错误,而无需借助JRE修改或全局设置
我无法找到让mturks 1.2.2工作的方法 . 但是,使用不同的版本(1.6.2)解决了这个问题 .
我更新的pom现在看起来像这样: