首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从类路径为JollyDayHoliday初始化SUTime,ReflectionLoadingException:创建TimeExpressionExtractorImpl错误

从类路径为JollyDayHoliday初始化SUTime,ReflectionLoadingException:创建TimeExpressionExtractorImpl错误
EN

Stack Overflow用户
提问于 2015-06-26 22:52:30
回答 1查看 611关注 0票数 1

我与几乎有相同的问题:

然而,在我的例子中,我正在使用Clojure构建一个web应用程序,而我的同事正在用Java构建我们的自然语言处理引擎。NLP作为一个罐子包括在内。我们已经工作了几个星期,但是我的同事增加了一些新的依赖项,这给我们带来了这个错误。

此人还报告了一个类似的错误:

代码语言:javascript
复制
 Error creating edu.stanford.nlp.time.TimeExpressionExtractorImpl

参见这里:有一个答案:这里

这两种情况下的问题似乎都是不同库中的版本冲突,但我不知道如何解决这个问题。在Clojure应用程序中,我们使用clj-time,它显然使用Joda-Time 2.6,而斯坦福核心NLP库似乎使用Joda 2.1。有解决冲突的办法吗?

这两部分软件都可以编译,Clojure应用程序也可以启动,其中包括NLP引擎。但是,Clojure应用程序随后在NLP引擎中调用一个"start“方法,这将导致NLP引擎加载它所需的词汇和解析器。然后我们得到以下消息和错误:

代码语言:javascript
复制
Loading classifier from /home/safflower/apricots/dependencies/english.muc.7class.caseless.distsim.crf.ser.gz ... done [1.5 sec].

Loading parser from serialized file edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz ...  done [0.3 sec].

Loading parser from serialized file edu/stanford/nlp/models/lexparser/englishPCFG.caseless.ser.gz ...  done [1.1 sec].

Adding annotator tokenize

TokenizerAnnotator: No tokenizer type provided. Defaulting to PTBTokenizer.

Adding annotator ssplit

Adding annotator pos

Reading POS tagger model from edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger ... done [1.9 sec].

Adding annotator lemma

Adding annotator ner

Loading classifier from /home/safflower/apricots/dependencies/english.all.7class.distsim.crf.ser.gz ... done [1.5 sec].

Initializing JollyDayHoliday for SUTime from classpath: edu/stanford/nlp/models/sutime/jollyday/Holidays_sutime.xml as sutime.binder.1.
#<ReflectionLoadingException edu.stanford.nlp.util.ReflectionLoading$ReflectionLoadingException: Error creating edu.stanford.nlp.time.TimeExpressionExtractorImpl>

Exception in start/start: edu.stanford.nlp.util.ReflectionLoading$ReflectionLoadingException: Error creating edu.stanford.nlp.time.TimeExpressionExtractorImpl    

如果我在Java应用程序中这样做:

代码语言:javascript
复制
mvn dependency:tree

我看到这个:

代码语言:javascript
复制
[INFO] |  +- joda-time:joda-time:jar:2.1:compile
[INFO] |  \- javax.xml.bind:jaxb-api:jar:2.2.7:compile
[INFO] +- log4j:log4j:jar:1.2.17:compile
[INFO] +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
[INFO] |  \- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
[INFO] +- junit:junit:jar:3.8.1:test
[INFO] +- net.sf.supercsv:super-csv:jar:2.0.0-beta-1:compile
[INFO] +- org.apache.commons:commons-lang3:jar:3.0:compile
[INFO] \- edu.stanford.nlp:stanford-corenlp:jar:3.5.2:compile
[INFO]    +- com.io7m.xom:xom:jar:1.2.10:compile
[INFO]    |  +- xml-apis:xml-apis:jar:1.3.03:compile
[INFO]    |  +- xerces:xercesImpl:jar:2.8.0:compile
[INFO]    |  \- xalan:xalan:jar:2.7.0:compile
[INFO]    +- com.googlecode.efficient-java-matrix-library:ejml:jar:0.23:compile
[INFO]    \- javax.json:javax.json-api:jar:1.0:compile

如果我在Clojure应用程序中这样做的话:

代码语言:javascript
复制
lein deps :tree

我看到这个:

代码语言:javascript
复制
Retrieving org/clojure/tools.nrepl/0.2.6/tools.nrepl-0.2.6.pom from central
Retrieving clojure-complete/clojure-complete/0.2.3/clojure-complete-0.2.3.pom from clojars
Retrieving org/clojure/tools.nrepl/0.2.6/tools.nrepl-0.2.6.jar from central
Retrieving clojure-complete/clojure-complete/0.2.3/clojure-complete-0.2.3.jar from clojars
Possibly confusing dependencies found:
[slingshot "0.10.3"]
 overrides
[clj-http "1.1.2"] -> [slingshot "0.12.2" :exclusions [org.clojure/clojure]]

Consider using these exclusions:
[clj-http "1.1.2" :exclusions [slingshot]]

[clj-time "0.6.0"]
 overrides
[ring "1.4.0-RC1"] -> [ring/ring-jetty-adapter "1.4.0-RC1"] -> [ring/ring-core "1.4.0-RC1"] -> [clj-time "0.9.0"]
 and
[ring "1.4.0-RC1"] -> [ring/ring-devel "1.4.0-RC1"] -> [ring/ring-core "1.4.0-RC1"] -> [clj-time "0.9.0"]
 and
[ring "1.4.0-RC1"] -> [ring/ring-core "1.4.0-RC1"] -> [clj-time "0.9.0"]

Consider using these exclusions:
[ring "1.4.0-RC1" :exclusions [clj-time]]
[ring "1.4.0-RC1" :exclusions [clj-time]]
[ring "1.4.0-RC1" :exclusions [clj-time]]

[org.clojure/tools.namespace "0.2.4"]
 overrides
[ring "1.4.0-RC1"] -> [ring/ring-devel "1.4.0-RC1"] -> [ns-tracker "0.3.0"] -> [org.clojure/tools.namespace "0.2.10"]

Consider using these exclusions:
[ring "1.4.0-RC1" :exclusions [org.clojure/tools.namespace]]

[clj-stacktrace "0.2.7"]
 overrides
[ring "1.4.0-RC1"] -> [ring/ring-devel "1.4.0-RC1"] -> [clj-stacktrace "0.2.8"]

Consider using these exclusions:
[ring "1.4.0-RC1" :exclusions [clj-stacktrace]]

[clj-time "0.6.0"] -> [joda-time "2.2"]
 overrides
[ring "1.4.0-RC1"] -> [ring/ring-jetty-adapter "1.4.0-RC1"] -> [ring/ring-core "1.4.0-RC1"] -> [clj-time "0.9.0"] -> [joda-time "2.6"]
 and
[ring "1.4.0-RC1"] -> [ring/ring-devel "1.4.0-RC1"] -> [ring/ring-core "1.4.0-RC1"] -> [clj-time "0.9.0"] -> [joda-time "2.6"]
 and
[ring "1.4.0-RC1"] -> [ring/ring-core "1.4.0-RC1"] -> [clj-time "0.9.0"] -> [joda-time "2.6"]

Consider using these exclusions:
[ring "1.4.0-RC1" :exclusions [joda-time]]
[ring "1.4.0-RC1" :exclusions [joda-time]]
[ring "1.4.0-RC1" :exclusions [joda-time]]

 [cheshire "5.5.0"]
   [com.fasterxml.jackson.core/jackson-core "2.5.3"]
   [com.fasterxml.jackson.dataformat/jackson-dataformat-cbor "2.5.3"]
   [com.fasterxml.jackson.dataformat/jackson-dataformat-smile "2.5.3"]
   [tigris "0.1.1"]
 [clj-http "1.1.2"]
   [com.cognitect/transit-clj "0.8.271" :exclusions [[org.clojure/clojure]]]
     [com.cognitect/transit-java "0.8.287"]
       [com.fasterxml.jackson.datatype/jackson-datatype-json-org "2.3.2"]
         [com.fasterxml.jackson.core/jackson-databind "2.3.2"]
           [com.fasterxml.jackson.core/jackson-annotations "2.3.0"]
         [org.json/json "20090211"]
       [org.apache.directory.studio/org.apache.commons.codec "1.8"]
       [org.msgpack/msgpack "0.6.10"]
         [com.googlecode.json-simple/json-simple "1.1.1" :exclusions [[junit]]]
         [org.javassist/javassist "3.18.1-GA"]
   [commons-codec "1.10" :exclusions [[org.clojure/clojure]]]
   [commons-io "2.4" :exclusions [[org.clojure/clojure]]]
   [crouton "0.1.2" :exclusions [[org.clojure/clojure]]]
     [org.jsoup/jsoup "1.7.1"]
   [org.apache.httpcomponents/httpclient "4.4.1" :exclusions [[org.clojure/clojure]]]
     [commons-logging "1.2"]
   [org.apache.httpcomponents/httpcore "4.4.1" :exclusions [[org.clojure/clojure]]]
   [org.apache.httpcomponents/httpmime "4.4.1" :exclusions [[org.clojure/clojure]]]
   [org.clojure/tools.reader "0.9.2" :exclusions [[org.clojure/clojure]]]
   [potemkin "0.3.13" :exclusions [[org.clojure/clojure]]]
     [clj-tuple "0.2.1"]
 [clj-stacktrace "0.2.7"]
 [clj-time "0.6.0"]
   [joda-time "2.2"]
 [clojure-complete "0.2.3" :scope "test" :exclusions [[org.clojure/clojure]]]
 [com.novemberain/monger "2.0.1"]
   [clojurewerkz/support "1.1.0"]
     [com.google.guava/guava "18.0"]
   [org.mongodb/mongo-java-driver "2.12.4"]
 [com.taoensso/timbre "3.2.1"]
   [com.taoensso/encore "1.5.1"]
   [io.aviso/pretty "0.1.10"]
 [compojure "1.3.4"]
   [clout "2.1.2"]
     [instaparse "1.4.0" :exclusions [[org.clojure/clojure]]]
   [medley "0.6.0"]
   [org.clojure/tools.macro "0.1.5"]
   [ring/ring-codec "1.0.0"]
 [dire "0.5.1"]
   [robert/hooke "1.3.0"]
 [local/nlp "1.0-SNAPSHOT"]
 [manifold "0.1.0"]
   [org.clojure/tools.logging "0.3.1"]
   [riddley "0.1.9"]
 [me.raynes/fs "1.4.4"]
   [org.apache.commons/commons-compress "1.4"]
     [org.tukaani/xz "1.0"]
 [org.clojure/clojure "1.6.0"]
 [org.clojure/core.cache "0.6.4"]
   [org.clojure/data.priority-map "0.0.4"]
 [org.clojure/core.incubator "0.1.3"]
 [org.clojure/core.match "0.3.0-alpha4"]
   [org.clojure/tools.analyzer.jvm "0.6.5"]
     [org.clojure/core.memoize "0.5.6"]
     [org.clojure/tools.analyzer "0.6.4"]
     [org.ow2.asm/asm-all "4.2"]
 [org.clojure/data.json "0.2.5"]
 [org.clojure/tools.namespace "0.2.4"]
 [org.clojure/tools.nrepl "0.2.6" :scope "test" :exclusions [[org.clojure/clojure]]]
 [overtone/at-at "1.2.0"]
 [ring/ring-json "0.3.1"]
 [ring "1.4.0-RC1"]
   [ring/ring-core "1.4.0-RC1"]
     [commons-fileupload "1.3.1"]
     [crypto-equality "1.0.0"]
     [crypto-random "1.2.0"]
   [ring/ring-devel "1.4.0-RC1"]
     [hiccup "1.0.5"]
     [ns-tracker "0.3.0"]
       [org.clojure/java.classpath "0.2.2"]
   [ring/ring-jetty-adapter "1.4.0-RC1"]
     [org.eclipse.jetty/jetty-server "9.2.10.v20150310"]
       [javax.servlet/javax.servlet-api "3.1.0"]
       [org.eclipse.jetty/jetty-http "9.2.10.v20150310"]
         [org.eclipse.jetty/jetty-util "9.2.10.v20150310"]
       [org.eclipse.jetty/jetty-io "9.2.10.v20150310"]
   [ring/ring-servlet "1.4.0-RC1"]
 [slingshot "0.10.3"]

safflower@cloud-server-01:~/apricots$ 
   [robert/hooke "1.3.0"]
 [local/nlp "1.0-SNAPSHOT"]
 [manifold "0.1.0"]
   [org.clojure/tools.logging "0.3.1"]
   [riddley "0.1.9"]
 [me.raynes/fs "1.4.4"]
   [org.apache.commons/commons-compress "1.4"]
     [org.tukaani/xz "1.0"]
 [org.clojure/clojure "1.6.0"]
 [org.clojure/core.cache "0.6.4"]
   [org.clojure/data.priority-map "0.0.4"]
 [org.clojure/core.incubator "0.1.3"]
 [org.clojure/core.match "0.3.0-alpha4"]
   [org.clojure/tools.analyzer.jvm "0.6.5"]
     [org.clojure/core.memoize "0.5.6"]
     [org.clojure/tools.analyzer "0.6.4"]
     [org.ow2.asm/asm-all "4.2"]
 [org.clojure/data.json "0.2.5"]
 [org.clojure/tools.namespace "0.2.4"]
 [org.clojure/tools.nrepl "0.2.6" :scope "test" :exclusions [[org.clojure/clojure]]]
 [overtone/at-at "1.2.0"]
 [ring/ring-json "0.3.1"]
 [ring "1.4.0-RC1"]
   [ring/ring-core "1.4.0-RC1"]
     [commons-fileupload "1.3.1"]
     [crypto-equality "1.0.0"]
     [crypto-random "1.2.0"]
   [ring/ring-devel "1.4.0-RC1"]
     [hiccup "1.0.5"]
     [ns-tracker "0.3.0"]
       [org.clojure/java.classpath "0.2.2"]
   [ring/ring-jetty-adapter "1.4.0-RC1"]
     [org.eclipse.jetty/jetty-server "9.2.10.v20150310"]
       [javax.servlet/javax.servlet-api "3.1.0"]
       [org.eclipse.jetty/jetty-http "9.2.10.v20150310"]
         [org.eclipse.jetty/jetty-util "9.2.10.v20150310"]
       [org.eclipse.jetty/jetty-io "9.2.10.v20150310"]
   [ring/ring-servlet "1.4.0-RC1"]
 [slingshot "0.10.3"]

如何解决可能的版本冲突?

这是我拥有的project.clj文件:

代码语言:javascript
复制
(defproject oyster "0.1"
  :dependencies [[org.clojure/clojure "1.6.0"]
                 [com.taoensso/timbre "3.2.1"]
                 [dire "0.5.1"]
                 [slingshot "0.10.3"]
                 [ring "1.4.0-RC1"]
                 [clj-time "0.6.0"]
                 [org.clojure/data.json "0.2.5"]
                 [compojure "1.3.4"]
                 [com.novemberain/monger "2.0.1"]
                 [org.clojure/tools.namespace "0.2.4"]
                 [manifold "0.1.0"]  
                 [me.raynes/fs "1.4.4"]
                 [org.clojure/core.incubator "0.1.3"]
                 [clj-stacktrace "0.2.7"]
                 [overtone/at-at "1.2.0"]
                 [ring/ring-json "0.3.1"]
                 [clj-http "1.1.2"]
                 [org.clojure/core.cache "0.6.4"]
                 [cheshire "5.5.0"]
                 [org.clojure/core.match "0.3.0-alpha4"]
                 [local/nlp "1.0-SNAPSHOT"]]
  :repositories {"local" ~(str (.toURI (java.io.File. "maven_repository")))}
  :disable-implicit-clean true
;;  :warn-on-reflection true
  :source-paths      ["src/clojure"]
  :java-source-paths ["src/java"]
  :main oyster.core
  :aot :all
  :jvm-opts ["-Xms100m" "-Xmx1000m" "-XX:-UseCompressedOops"])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-26 23:36:22

包括您的project.clj将有助于发现问题。您可能需要在project.clj的“依赖项”部分中使用“排除”选项。

来自https://github.com/technomancy/leiningen/blob/master/sample.project.clj

代码语言:javascript
复制
;;; Dependencies, Plugins, and Repositories
  ;; Dependencies are listed as [group-id/name version]; in addition
  ;; to keywords supported by Pomegranate, you can use :native-prefix
  ;; to specify a prefix. This prefix is used to extract natives in
  ;; jars that don't adhere to the default "<os>/<arch>/" layout that
  ;; Leiningen expects.
  :dependencies [[org.clojure/clojure "1.3.0"]
                 [org.jclouds/jclouds "1.0" :classifier "jdk15"]
                 [net.sf.ehcache/ehcache "2.3.1" :extension "pom"]
                 [log4j "1.2.15" :exclusions [[javax.mail/mail :extension "jar"]
                                              [javax.jms/jms :classifier "*"]
                                              com.sun.jdmk/jmxtools
                                              com.sun.jmx/jmxri]]
                 [org.lwjgl.lwjgl/lwjgl "2.8.5"]
                 [org.lwjgl.lwjgl/lwjgl-platform "2.8.5"
                  :classifier "natives-osx"
                  ;; LWJGL stores natives in the root of the jar; this
                  ;; :native-prefix will extract them.
                  :native-prefix ""]]

在我的一个项目中,我有一个类似你的问题,我需要这一行:

代码语言:javascript
复制
[com.datomic/datomic-pro  "0.9.5173" :exclusions [joda-time]]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31083274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档