繁体   English   中英

java.lang.NoSuchMethodError:org.apache.commons.io.IOUtils.read with Tika(检测方法)

[英]java.lang.NoSuchMethodError: org.apache.commons.io.IOUtils.read with Tika (detect method)

这是我的方法:

public String retrieveMimeType(InputStream stream, String filename) throws Exception {
         TikaConfig config = TikaConfig.getDefaultConfig();
         Detector detector = config.getDetector();

         TikaInputStream streams = TikaInputStream.get(stream);

         Metadata metadata = new Metadata();
         metadata.add(TikaCoreProperties.RESOURCE_NAME_KEY, filename);
         MediaType mediaType = null;
        mediaType = detector.detect(stream, metadata);
        return mediaType.toString();
    }

它在日志上给了我这个:

java.lang.NoSuchMethodError: org.apache.commons.io.IOUtils.read(Ljava/io/InputStream;[B)I
    at org.apache.tika.detect.apple.BPListDetector.detect(BPListDetector.java:106)
    at org.apache.tika.detect.CompositeDetector.detect(CompositeDetector.java:85)
    at com.hraccess.helper.UserFileValidator.retrieveMimeType(UserFileValidator.java:313)
    at com.hraccess.webclient.servlets.ServletBlob.doPost(ServletBlob.java:429)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)

对于这一行:

at com.hraccess.helper.UserFileValidator.retrieveMimeType(UserFileValidator.java:313)

这是第 313 行:

mediaType = detector.detect(stream, metadata);

那么我能做什么呢? 当我将解析器添加到我的 pom.xml 时,它会出现此错误。 如何找到原因?

堆栈跟踪说org.apache.commons.io.IOUtils.read丢失。 This is a static method in org.apache.commons.io.IOUtils , which class is part of thecommons-io package.

  1. 确保 commons-io 已链接到您的应用程序(检查 pom.xml 或mvn dependency:tree输出)。

  2. 确保它在相对较新的版本中链接。 commons-io 的 v2.0 还没有这个方法( link ),但是现在的已经有了( link )。 通常,始终使用所有内容的最后一个稳定版本是一个好习惯。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM