簡體   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