Java Nutch:NoClassDefFoundError:org/springframework/retry/RetryCallback
我正在运行正常的Nutch索引,它在2天前工作得很好,但今天突然停止了与前一个错误的工作。在堆栈错误之后:Java Nutch:NoClassDefFoundError:org/springframework/retry/RetryCallback,java,spring,indexing,nutch,Java,Spring,Indexing,Nutch,我正在运行正常的Nutch索引,它在2天前工作得很好,但今天突然停止了与前一个错误的工作。在堆栈错误之后: Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/retry/RetryCallback at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetD
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/retry/RetryCallback
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
at java.lang.Class.newInstance(Class.java:412)
at org.apache.nutch.plugin.Extension.getExtensionInstance(Extension.java:161)
at org.apache.nutch.indexer.IndexWriters.<init>(IndexWriters.java:55)
at org.apache.nutch.indexer.IndexingJob.index(IndexingJob.java:121)
at org.apache.nutch.indexer.IndexingJob.run(IndexingJob.java:228)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.nutch.indexer.IndexingJob.main(IndexingJob.java:238)
Caused by: java.lang.ClassNotFoundException: org.springframework.retry.RetryCallback
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 10 more
另一个基于此但使用不同项目的项目能够通过添加spring框架消息传递依赖项来解决此问题
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-messaging</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
org.springframework
spring消息
4.2.4.1发布
我使用nutch版本1.12和ivy进行依赖关系管理,因此在我的配置中如下所示:
<dependency org="org.springframework.retry" name="spring-retry" rev="1.2.0.RELEASE">
<exclude module="spring-beans"/>
<exclude module="spring-context"/>
<exclude module="spring-core"/>
<exclude module="spring-aop"/>
</dependency>
即使添加了spring消息传递依赖项,它仍然不起作用。
有什么想法吗?当您的类路径中有多个版本的相同jar(相同类)时,可能会出现此类错误,您可以通过执行
<report conf="compile" /> for ivy projects
缩小到您想要的版本,您可以通过将另一个jar从导入它的模块中显式排除来排除它。不知道出了什么问题,但这能够解决问题
ant clean
ant runtime
你能在你的项目中粘贴“mvn dependency:tree”命令的输出吗。@Timothy我使用的是ivy,如前所述不是mvn,运行ant runtime时没有错误。OK,你能通过在ivy配置文件中包含下面的ant任务来执行ivy报告吗?我怀疑这个jar是由多个源导入的,因此存在冲突。我找不到在何处添加报告标记,但仍然得到一个错误未知标记report在将其添加到build.xml报告后,如果没有生成报告,我就是这样添加报告的
mvn dependency:tree for maven projects
ant clean
ant runtime