使用tika-1.4时,请执行以下操作:

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-core中排除tika-parsers,那么我将获得2个版本的tika-core(由vorbis-java-tika依赖项拉出的1.0版)和tika-core版本1.4版。

如果我将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" }

最佳答案

这可能不是您看到的问题-我们正在使用tika 1.5(快照)。该版本引入了asm-debug-all,这是我们遇到麻烦的原因(与您的栈跟踪类似)。尝试在tika解析器排除项中使用“asm-debug-all”,而不是“tika-core”。

关于grails - 将apache-tika依赖项添加到grails项目中的正确方法是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18098153/

10-11 20:06