<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      buguge - Keep it simple,stupid

      ? 知識就是力量,但更重要的,是運用知識的能力? why buguge?

      導(dǎo)航

      【分享排雷經(jīng)歷】系統(tǒng)引入Apache-Tika產(chǎn)生的NoClassDefFoundError錯誤

      今天,我們的重點工作是對monorepo系統(tǒng)的文件導(dǎo)入做安全控制,主要是通過判斷文件的擴展名和類型,來限定用戶導(dǎo)入文件的合法性,防止非法文件進(jìn)入系統(tǒng)造成風(fēng)險。

      我們借用了此前在另一個系統(tǒng)zfquan基于Apache Tika的解決方案。

      不巧,在運行main程序時,出現(xiàn)了一個 NoClassDefFoundError 錯誤-未找到Apache Commons IO(commons-io)類庫的一個class的定義

      20:25:14.667 [main] DEBUG org.apache.tika.config.TikaConfig - loading tika config from defaults; no config file specified
      Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/input/UnsynchronizedByteArrayInputStream
      	at org.apache.tika.config.TikaConfig.getDefaultMimeTypes(TikaConfig.java:317)
      	at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:246)
      	at org.apache.tika.config.TikaConfig.getDefaultConfig(TikaConfig.java:390)
      	at org.apache.tika.Tika.<init>(Tika.java:119)
      	at com.emax.zhenghe.common.util.TikaFileSecurityUtils.<init>(TikaFileSecurityUtils.java:20)
      	at com.emaxcard.car.TestMain.main(TestMain.java:38)
      Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.input.UnsynchronizedByteArrayInputStream
      	at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
      	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
      	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
      	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
      	... 6 more
      
      Process finished with exit code 1
      

      NoClassDefFoundError(而不是 ClassNotFoundException) 表示編譯時類存在,但運行時找不到。

      常見原因:

      • 依賴未正確引入。

      • 依賴沖突導(dǎo)致類加載失敗。

      • 打包時遺漏了 commons-io.jar(如 maven-shade-plugin 未正確包含依賴)。



      同樣的Tika,為什么搬到monorepo就不行了呢?

      經(jīng)查maven依賴,monorepo系統(tǒng)與zfquan系統(tǒng)所依賴的 commons-io 的版本不同,zfquan2.16.1monorepo2.6,這導(dǎo)致了問題的發(fā)生。


      與單體結(jié)構(gòu)的zfquan所不同的是,monorepo是一個龐大的同時擁有基礎(chǔ)lib庫和上層應(yīng)用的工程。我們是在lib庫的 sby-component-dfs 包 中添加的Tika依賴。


      我嘗試在其中一個應(yīng)用層pom里顯式添加 commons-io:2.16.1,是可以解決問題的。

      但,monorepo有多達(dá)數(shù)十個應(yīng)用,我顯然不能在這么多應(yīng)用層里顯式添加 commons-io:2.16.1 依賴。而且,這不符合我們的系統(tǒng)開發(fā)規(guī)范————maven包依賴統(tǒng)一在頂層pom來管理。


      那么,如何繼續(xù)解決呢?

      通過應(yīng)用的maven依賴樹(dependency:tree)得知,commons-io:commons-io:jar:2.6 是直接作為頂層依賴引入的(沒有被其他庫傳遞依賴)

      然后我在IDE中全局查找 <artifactId>commons-io</artifactId>,發(fā)現(xiàn)在頂層maven依賴管理文件 spring-base.pom 中,的確顯式定義了 commons-io 的版本號!

      <properties>
          ...
      	<commons.version>2.6</commons.version>
      </properties>
      
      <dependencyManagement>
          <dependencies>
              ...
              <dependency>
                  <groupId>commons-io</groupId>
                  <artifactId>commons-io</artifactId>
                  <version>${commons.version}</version>
              </dependency>
          </dependencies>
      </dependencyManagement>
      

      如此,我把這個版本號變更為 2.16.1 ,也是可以解決問題的。

      但,monorepo項目龐大,這樣可能會拆東墻補西墻————可能影響其他用到commons-io的系統(tǒng)功能。


      so,我們得針對 Tika 版本來做文章,找到適配 commons-io:2.6 的版本。

      DeepSeek很快給出答案:Tika 2.4.1依賴commons-io:2.6。開發(fā)者將 Tika 版本從 2.9.1 降級到 2.4.1,不再出現(xiàn)NoClassDefFoundError錯誤,并且經(jīng)測試,這個版本的Tika可以滿足我們對系統(tǒng)文件導(dǎo)入的安全控制。

      posted on 2025-08-07 23:30  buguge  閱讀(103)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 龙井市| 久久夜色精品国产噜噜亚洲sv| 4hu四虎永久在线观看| 一本一道av无码中文字幕麻豆| 国产一区二区精品偷系列| 国产精品国产自产拍高清| 国产免费视频一区二区 | 亚洲一区二区三区四区| 四虎成人精品在永久免费| 黄色网站免费在线观看| 日韩在线视频网| 精品人妻码一区二区三区| 51午夜精品免费视频| 波多野结衣无内裤护士| 九九热精品在线观看| 亚洲中国精品精华液| 亚洲一区二区中文字幕| 国产美女久久久亚洲综合| 欧美亚洲日本国产综合在线美利坚| 伊人久久大香线蕉综合影院首页| 免费看国产精品3a黄的视频| 国产精品亚洲综合第一页| 国产成年码av片在线观看| 亚洲在战av极品无码| 国产自拍在线一区二区三区| 国产精品一二三区蜜臀av| 亚洲国产精品久久久天堂麻豆宅男| 性男女做视频观看网站| 五月丁香综合缴情六月小说| 亚洲av永久无码精品漫画| 国产精品亚洲精品日韩已满十八小 | 国产精品国产三级国产午| 国产精品三级爽片免费看| 国产自在自线午夜精品| 亚洲跨种族黑人xxxxx| 国产中文字幕精品免费| 久久久久久亚洲精品a片成人| 国产区精品视频自产自拍| 一区二区精品久久蜜精品| 国产无套内射又大又猛又粗又爽 | 国产短视频精品一区二区|