Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Nutch:NoClassDefFoundError:org/springframework/retry/RetryCallback_Java_Spring_Indexing_Nutch - Fatal编程技术网

Java Nutch:NoClassDefFoundError:org/springframework/retry/RetryCallback

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

我正在运行正常的Nutch索引,它在2天前工作得很好,但今天突然停止了与前一个错误的工作。在堆栈错误之后:

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