出现的错误如下:
java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: org/cyberneko/html/parsers/DOMFragmentParser
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:232)
at java.util.concurrent.FutureTask.get(FutureTask.java:91)
at org.apache.nutch.parse.ParseUtil.runParser(ParseUtil.java:164)
at org.apache.nutch.parse.ParseUtil.parse(ParseUtil.java:88)
at org.apache.nutch.fetcher.Fetcher$FetcherThread.output(Fetcher.java:900)
at org.apache.nutch.fetcher.Fetcher$FetcherThread.run(Fetcher.java:662)
原因:
(1)在win7下编译的项目移植到linux下不兼容导致的。
(2)而且我的win7默认是GDK编码格式,linux下不支持这种格式。
(3)项目在eclipse中编辑的时候,我将nutch配置文件nutch-default.xml中的plugin.folders配置属性改动为./src/plugin,所以需要重新修改为plugins。
解决方案:首先在eclipse中将项目修改为UTF-8编码格式,然后将win7下编译的.class文件删除掉,我的是在conf配置文件夹下(有org和conf两个编译文件夹),修改nutch-default.xml配置文件的plugin.folders属性,值改为plugins,最后将项目移植到linux下,使用ant对项目重新进行编译,程序不再出现异常。