CoreNLP icon indicating copy to clipboard operation
CoreNLP copied to clipboard

Error: Error creating class edu.stanford.nlp.util.ReflectionLoading$ReflectionLoadingException: Error creating edu.stanford.nlp.time.TimeExpressionExtractorImpl

Open loretoparisi opened this issue 7 years ago • 12 comments

I get this error when having in the CLASSPATH the DeepLearning4J and ND4J jars. This happens only when initializing CoreNLP and DeepLearning4J, while the latter works alone.

{ Error: Error creating class
edu.stanford.nlp.util.ReflectionLoading$ReflectionLoadingException: Error creating edu.stanford.nlp.time.TimeExpressionExtractorImpl
	at edu.stanford.nlp.util.ReflectionLoading.loadByReflection(ReflectionLoading.java:40)
	at edu.stanford.nlp.time.TimeExpressionExtractorFactory.create(TimeExpressionExtractorFactory.java:57)
	at edu.stanford.nlp.time.TimeExpressionExtractorFactory.createExtractor(TimeExpressionExtractorFactory.java:38)
	at edu.stanford.nlp.ie.regexp.NumberSequenceClassifier.<init>(NumberSequenceClassifier.java:86)
	at edu.stanford.nlp.ie.NERClassifierCombiner.<init>(NERClassifierCombiner.java:136)
	at edu.stanford.nlp.pipeline.AnnotatorImplementations.ner(AnnotatorImplementations.java:121)
	at edu.stanford.nlp.pipeline.AnnotatorFactories$6.create(AnnotatorFactories.java:273)
	at edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:152)
	at edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(StanfordCoreNLP.java:451)
	at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:154)
	at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:150)
	at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:137)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
Caused by: edu.stanford.nlp.util.MetaClass$ClassCreationException: MetaClass couldn't create public edu.stanford.nlp.time.TimeExpressionExtractorImpl(java.lang.String,java.util.Properties) with args [sutime, {}]
	at edu.stanford.nlp.util.MetaClass$ClassFactory.createInstance(MetaClass.java:237)
	at edu.stanford.nlp.util.MetaClass.createInstance(MetaClass.java:382)
	at edu.stanford.nlp.util.ReflectionLoading.loadByReflection(ReflectionLoading.java:38)
	... 15 more
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at edu.stanford.nlp.util.MetaClass$ClassFactory.createInstance(MetaClass.java:233)
	... 17 more
Caused by: java.lang.NoClassDefFoundError: de/jollyday/ManagerParameter
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at edu.stanford.nlp.time.Options.<init>(Options.java:87)
	at edu.stanford.nlp.time.TimeExpressionExtractorImpl.init(TimeExpressionExtractorImpl.java:44)
	at edu.stanford.nlp.time.TimeExpressionExtractorImpl.<init>(TimeExpressionExtractorImpl.java:39)
	... 22 more
Caused by: java.lang.ClassNotFoundException: de.jollyday.ManagerParameter
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 27 more

    at Error (native)
    at new StanfordCoreNLP (/Users/loretoparisi/Documents/Projects/intelligence-sdk/lib/nlp/stanford/index.js:127:28)
    at cld.detectCLDP.then.res (/Users/loretoparisi/Documents/Projects/intelligence-sdk/lib/tests/nlp/nlpandclassifier.js:118:35)
    at process._tickCallback (internal/process/next_tick.js:103:7)
    at Module.runMain (module.js:606:11)
    at run (bootstrap_node.js:394:7)
    at startup (bootstrap_node.js:149:9)
    at bootstrap_node.js:509:3
  cause: nodeJava_edu_stanford_nlp_util_ReflectionLoading_ReflectionLoadingException {} }

loretoparisi avatar Feb 28 '17 17:02 loretoparisi

[UPDATE]

For some reason it complains that it is missing jollyday-0.5.1.jar, that as soon as I add it to the class path, it changing the logging output like

19:11:03.176 [main] INFO  e.s.n.classify.ColumnDataClassifier - Reading dataset from /Users/loretoparisi/musixmatch/Development/data/data/musixmatch/webservice/explicit_dataset_test.csv ... done [7,0s, 1531 items].
19:11:03.286 [main] INFO  e.s.nlp.pipeline.StanfordCoreNLP - Adding annotator tokenize
19:11:03.297 [main] INFO  e.s.nlp.pipeline.StanfordCoreNLP - Adding annotator ssplit
19:11:03.299 [main] INFO  e.s.nlp.pipeline.StanfordCoreNLP - Adding annotator pos
19:11:03.906 [main] INFO  e.s.nlp.tagger.maxent.MaxentTagger - Loading POS tagger from edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger ... done [0,6 sec].
19:11:03.906 [main] INFO  e.s.nlp.pipeline.StanfordCoreNLP - Adding annotator lemma
19:11:03.907 [main] INFO  e.s.nlp.pipeline.StanfordCoreNLP - Adding annotator ner

and starts using it

19:11:08.130 [main] INFO  e.stanford.nlp.time.JollyDayHolidays - Initializing JollyDayHoliday for SUTime from classpath edu/stanford/nlp/models/sutime/jollyday/Holidays_sutime.xml as sutime.binder.1.

loretoparisi avatar Feb 28 '17 18:02 loretoparisi

So are you saying you have an issue if you use the jollyday-0.4.9.jar instead?

J38 avatar Apr 01 '17 09:04 J38

@J38 yes it works only with jollyday-0.5.1.jar.

loretoparisi avatar Apr 06 '17 08:04 loretoparisi

Putting a jollyday-0.5.1 doesn't change anything for me. Ubuntu 17.10:

$ java -cp "*" -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,parse,dcoref -file input.txt
[main] INFO edu.stanford.nlp.pipeline.StanfordCoreNLP - Adding annotator tokenize
[main] INFO edu.stanford.nlp.pipeline.TokenizerAnnotator - No tokenizer type provided. Defaulting to PTBTokenizer.
[main] INFO edu.stanford.nlp.pipeline.StanfordCoreNLP - Adding annotator ssplit
[main] INFO edu.stanford.nlp.pipeline.StanfordCoreNLP - Adding annotator pos
[main] INFO edu.stanford.nlp.tagger.maxent.MaxentTagger - Loading POS tagger from edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger ... done [0.6 sec].
[main] INFO edu.stanford.nlp.pipeline.StanfordCoreNLP - Adding annotator lemma
[main] INFO edu.stanford.nlp.pipeline.StanfordCoreNLP - Adding annotator ner
[main] INFO edu.stanford.nlp.ie.AbstractSequenceClassifier - Loading classifier from edu/stanford/nlp/models/ner/english.all.3class.distsim.crf.ser.gz ... done [0.9 sec].
[main] INFO edu.stanford.nlp.ie.AbstractSequenceClassifier - Loading classifier from edu/stanford/nlp/models/ner/english.muc.7class.distsim.crf.ser.gz ... done [0.5 sec].
[main] INFO edu.stanford.nlp.ie.AbstractSequenceClassifier - Loading classifier from edu/stanford/nlp/models/ner/english.conll.4class.distsim.crf.ser.gz ... done [0.5 sec].
[main] INFO edu.stanford.nlp.time.JollyDayHolidays - Initializing JollyDayHoliday for SUTime from classpath edu/stanford/nlp/models/sutime/jollyday/Holidays_sutime.xml as sutime.binder.1.
Exception in thread "main" edu.stanford.nlp.util.ReflectionLoading$ReflectionLoadingException: Error creating edu.stanford.nlp.time.TimeExpressionExtractorImpl
        at edu.stanford.nlp.util.ReflectionLoading.loadByReflection(ReflectionLoading.java:38)
        at edu.stanford.nlp.time.TimeExpressionExtractorFactory.create(TimeExpressionExtractorFactory.java:60)
        at edu.stanford.nlp.time.TimeExpressionExtractorFactory.createExtractor(TimeExpressionExtractorFactory.java:43)
        at edu.stanford.nlp.ie.regexp.NumberSequenceClassifier.<init>(NumberSequenceClassifier.java:86)
        at edu.stanford.nlp.ie.NERClassifierCombiner.<init>(NERClassifierCombiner.java:135)
        at edu.stanford.nlp.pipeline.NERCombinerAnnotator.<init>(NERCombinerAnnotator.java:131)
        at edu.stanford.nlp.pipeline.AnnotatorImplementations.ner(AnnotatorImplementations.java:68)
        at edu.stanford.nlp.pipeline.StanfordCoreNLP.lambda$getNamedAnnotators$44(StanfordCoreNLP.java:546)
        at edu.stanford.nlp.pipeline.StanfordCoreNLP.lambda$null$69(StanfordCoreNLP.java:625)
        at edu.stanford.nlp.util.Lazy$3.compute(Lazy.java:126)
        at edu.stanford.nlp.util.Lazy.get(Lazy.java:31)
        at edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:149)
        at edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(StanfordCoreNLP.java:495)
        at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:201)
        at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:194)
        at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:181)
        at edu.stanford.nlp.pipeline.StanfordCoreNLP.main(StanfordCoreNLP.java:1426)
Caused by: edu.stanford.nlp.util.MetaClass$ClassCreationException: MetaClass couldn't create public edu.stanford.nlp.time.TimeExpressionExtractorImpl(java.lang.String,java.util.Properties) with args [sutime, {}]
        at edu.stanford.nlp.util.MetaClass$ClassFactory.createInstance(MetaClass.java:237)
        at edu.stanford.nlp.util.MetaClass.createInstance(MetaClass.java:382)
        at edu.stanford.nlp.util.ReflectionLoading.loadByReflection(ReflectionLoading.java:36)
        ... 16 more
Caused by: java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
        at edu.stanford.nlp.util.MetaClass$ClassFactory.createInstance(MetaClass.java:233)
        ... 18 more
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
        at de.jollyday.util.CalendarUtil.<init>(CalendarUtil.java:49)
        at de.jollyday.HolidayManager.<init>(HolidayManager.java:65)
        at de.jollyday.impl.DefaultHolidayManager.<init>(DefaultHolidayManager.java:46)
        at edu.stanford.nlp.time.JollyDayHolidays$MyXMLManager.<init>(JollyDayHolidays.java:148)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
        at java.base/java.lang.Class.newInstance(Class.java:558)
        at de.jollyday.caching.HolidayManagerValueHandler.instantiateManagerImpl(HolidayManagerValueHandler.java:60)
        at de.jollyday.caching.HolidayManagerValueHandler.createValue(HolidayManagerValueHandler.java:41)
        at de.jollyday.caching.HolidayManagerValueHandler.createValue(HolidayManagerValueHandler.java:13)
        at de.jollyday.util.Cache.get(Cache.java:51)
        at de.jollyday.HolidayManager.createManager(HolidayManager.java:167)
        at de.jollyday.HolidayManager.getInstance(HolidayManager.java:147)
        at edu.stanford.nlp.time.JollyDayHolidays.init(JollyDayHolidays.java:57)
        at edu.stanford.nlp.time.Options.<init>(Options.java:119)
        at edu.stanford.nlp.time.TimeExpressionExtractorImpl.init(TimeExpressionExtractorImpl.java:44)
        at edu.stanford.nlp.time.TimeExpressionExtractorImpl.<init>(TimeExpressionExtractorImpl.java:39)
        ... 23 more
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
        ... 42 more

k-bx avatar Mar 14 '18 14:03 k-bx

Sorry, adding --add-modules java.se.ee as a first parameter for the java executable fixed the issue for me

k-bx avatar Mar 14 '18 14:03 k-bx

@k-bx my Java version is 11 and java.se is removed in this version, can you guide me in this respect? THanks

fabrahman avatar Jul 29 '19 22:07 fabrahman

@Hannabrahman not a Java person and not using this anymore, sorry. Maybe someone else could help.

k-bx avatar Jul 30 '19 08:07 k-bx

In my case, switching back to java 8 from java 11 worked.

yauhen-info avatar Aug 18 '19 14:08 yauhen-info

For future reference - Install Java 8 from here and depending on your system, add the correct Path to your environment. To find the correct path, open your Settings (or system preferences) and find the Java pane. Click on the Java tab and View the list of Java runtimes. The path given there is the path you need to add to your environment.

nitinthewiz avatar Mar 08 '22 18:03 nitinthewiz

Is there any solution possible without installing Java 8? I am working in Rstudio Workbench and have no rights to install a different Java version

Drake-HeleneVeenstra avatar Aug 25 '22 15:08 Drake-HeleneVeenstra

I confirm that it works with Java 8 / Java 9. I'm not aware of the other distro. I'm running corenlp-3.9.1 / Java9.

loretoparisi avatar Aug 25 '22 16:08 loretoparisi

It's possible that upgrading to jollyday 5 will help, but that's a bigger undertaking that it initially appears, so it's definitely not on the short track for the bugfix release we're working on in the coming week or so.

AngledLuffa avatar Aug 25 '22 16:08 AngledLuffa