2016-06-27 3 views
0

Я очень новый для boilerpipe и я попробовать следующий базовый код:ClassNotFoundException: org.apache.xerces.parsers.AbstractSAXParser при использовании boilerpipe

package contentExtraction; 

import java.net.URL; 

import de.l3s.boilerpipe.extractors.ArticleExtractor; 

public class ContentExtractor { 

    public static void main(String[] args) throws Exception { 
     final URL url = new URL(
//    "http://www.l3s.de/web/page11g.do?sp=page11g&link=ln104g&stu1g.LanguageISOCtxParam=en" 
      "http://www.dn.se/nyheter/vetenskap/annu-godare-choklad-med-hjalp-av-dna-teknik" 
      ); 

     System.out.println(ArticleExtractor.INSTANCE.getText(url)); 
    } 

} 

Но я получаю следующее сообщение об ошибке при попытке запустить выше фрагмент кода:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xerces/parsers/AbstractSAXParser 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at java.security.SecureClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.access$100(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at de.l3s.boilerpipe.sax.BoilerpipeSAXInput.getTextDocument(BoilerpipeSAXInput.java:51) 
    at de.l3s.boilerpipe.extractors.ExtractorBase.getText(ExtractorBase.java:69) 
    at de.l3s.boilerpipe.extractors.ExtractorBase.getText(ExtractorBase.java:87) 
    at contentExtraction.ContentExtractor.main(ContentExtractor.java:16) 
Caused by: java.lang.ClassNotFoundException: org.apache.xerces.parsers.AbstractSAXParser 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 16 more 

Я гугле ошибку и наткнулся на this link. Я думал, что в моих зависимостях мне не хватает xercesImpl.jar. Я включил то же самое, но мой код дает ту же ошибку. В чем проблема?

ответ

6

Я понял решение самостоятельно. Флакон boilerpipe имеет дополнительные зависимости. Я преобразовал свой проект Maven проект, включал в себя зависимость:

<dependency> 
    <groupId>com.syncthemall</groupId> 
    <artifactId>boilerpipe</artifactId> 
    <version>1.2.1</version> 
</dependency> 

Когда я строй над проектом, я могу видеть, что есть на самом деле 4 банков, которые импортируются в папке зависимостей Maven:

boilerpipe-1.2.1.jar
nekohtml-1.9.18.jar
xercesImpl-2.11.0.jar
xml-apis-1.4.01.jar

Смежные вопросы