ExceptionInInitializerError при использовании WordNet

Недавно я решил загрузить JWNL для Java-интерфейса к WordNet. Следуя различным руководствам (например, http://jwordnet.sourceforge.net/handbook.html), я скачал WordNet (2.1), а затем JWNL, задав в строке directory_path в файле file_properties.xml путь к WordNet.

<param name="dictionary_path" value="c:/res/wordnet/2.1/dict"/>

Я добавил все jar-файлы в свой путь к классам и в Eclipse создал для тестирования следующий простой класс:

    public static void main(String[] args) throws FileNotFoundException, 
                                             JWNLException {
          JWNL.initialize(new FileInputStream("C:\\path\\file_properties.xml"));
          Dictionary wordnet = Dictionary.getInstance();

          IndexWord word = wordnet.getIndexWord(POS.NOUN, "monarch");
          for(Synset syn : word.getSenses()) {
               System.out.println(syn.getGloss());
          }
    }

Запуск в Eclipse приводит к следующей ошибке:

Exception in thread "main" java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at net.didion.jwnl.util.factory.Element.install(Element.java:31)
at net.didion.jwnl.JWNL.initialize(JWNL.java:169)
at TestingOnWordNet.main(TestingOnWordNet.java:28)

Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException) (Caused by org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException))
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:543)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)
at net.didion.jwnl.util.MessageLog.<init>(MessageLog.java:11)
at net.didion.jwnl.dictionary.Dictionary.<clinit>(Dictionary.java:24)
... 5 more

Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException)
at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:397)
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
... 10 more

Caused by: java.lang.NullPointerException
at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:374)
... 11 more

Есть что-то, что мне не хватает? Я готов рассмотреть альтернативу, такую ​​как JAWS, но я надеялся найти способ решить эту проблему.

Спасибо!


person David C    schedule 05.05.2012    source источник
comment
Если кто-то наткнется на этот пост, я настоятельно рекомендую переключиться с JWNL на JAWS: lyle. smu.edu/~tspell/jaws/index.html, хотя бы по той причине, что вызов System.setProperty("wordnet.database.dir","C:/res/wordnet/2.1/dict/"); проще и понятнее, чем файл file_properties.xml.   -  person David C    schedule 14.05.2012
comment
Я тоже перешел на JAWS. JWPL имеет сложные API. :П   -  person Amit G    schedule 29.11.2013


Ответы (1)


Вы не добавили банки в путь к классам. Добавьте lib/commons-logging.jar в путь к классам.

person Amit G    schedule 29.11.2013