grails - 将apache-tika依赖项添加到grails项目中的正确方法是什么

标签 grails apache-tika

使用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/

相关文章:

grails - 如何在持久集中的特定索引处获取对象-Grails

java - 如何在 Java 中将 HTML 解析器与 Apache Tika 一起使用以提取所有 HTML 标记?

solr - PDFBox 在单词中添加空格

Grails Scaffolding 的 MongoDB 问题(在 MySQL 中不会发生)

Grails Facebook 注册/登录

grails - java.lang.IllegalAccessError:尝试访问字段org.grails.datastore.gorm.GormStaticApi.transactionManager

date - 如何获取日期的日期选择器?

Java Web 服务仅在本地主机上响应,而不是通过主机名 (Apache Tika)

java - 使用 java 和 Tika 的正则表达式将字符串拆分为数组

java - 优化DOC、XLS文件中的元数据写入