2013-08-07 37 views
0

以正確的方式使用蒂卡 - 1.4得到這個:什麼是添加Apache的蒂卡依賴到Grails項目

Caused by: java.lang.NoClassDefFoundError: net/sf/cglib/core/DebuggingClassWriter 
at net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter(DefaultGeneratorStrategy.java:30) 
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24) 
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216) 
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:144) 
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:116) 
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108) 
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104) 
... 5 more 
Caused by: java.lang.ClassNotFoundException: net.sf.cglib.core.DebuggingClassWriter 
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 

這兩行添加到BuildConfig.groovy:

compile ("org.apache.tika:tika-core:1.4") 
compile ("org.apache.tika:tika-parsers:1.4") {excludes "tika-core"} 

如果我不排除從tika-parsers,我得到tika-core(版本1.0拉vorbis-java-tika依賴項)和版本tika-core版本1.4的2個版本。

如果我將tika版本替換爲1.3,則異常消失。

更新1

該解決方案似乎作品:

compile ("org.apache.tika:tika-core:${tikaVersion}") 
compile ("org.apache.tika:tika-parsers:${tikaVersion}") { excludes "tika-core", "commons-codec", "commons-logging", "slf4j-api" } 
+0

運行一個'dependency-report'來查看是否存在任何其他工件的差異。 – dmahapatro

+0

已經做到了。沒有'cglib'或'asm'代表。 – Archer

+0

你有沒有找到解決方案,@archer? –

回答

1

這可能是也可能不是你看到的問題 - 我們正在與蒂卡1.5(快照)工作。該版本引入了asm-debug-all,這是我們麻煩的原因(類似於你的堆棧跟蹤)。嘗試在你的tika解析器中使用'asm-debug-all'而不是'tika-core'。

+0

這爲我解決了這個問題 –

+0

這使得它可以編譯,但是當我試圖實際使用它時,我得到一個類未找到的錯誤 –