精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

JAR沖突問題的解決以及運(yùn)行狀態(tài)下如何查看加載的類

開發(fā) 開發(fā)工具
今天碰到群里小伙伴問,線上程序好像有多個(gè)不同版本的Netty包,怎么去看到底加載了哪一個(gè)?

[[376071]]

今天碰到群里小伙伴問,線上程序好像有多個(gè)不同版本的Netty包,怎么去看到底加載了哪一個(gè)?

在說如何看之前,先來說說,當(dāng)你開始意識到項(xiàng)目里有多個(gè)不同版本的Jar包,都是因?yàn)橛龅搅诉@幾個(gè)異常:

  • 1、java.lang.NoSuchMethodException:自己代碼中調(diào)用了某個(gè)方法,因?yàn)榧虞d了其他版本的jar,這個(gè)版本正好沒這個(gè)方法。
  • 2、java.lang.NoClassDefFoundError:編譯時(shí)候是好的,但是運(yùn)行的時(shí)候,因?yàn)榧虞d的jar版本問題,沒有這個(gè)類。
  • 3、java.lang.ClassNotFoundException:在動態(tài)加載某個(gè)Class的時(shí)候,因?yàn)橐虞d的jar不是正確的版本,而導(dǎo)致找不到這個(gè)類。

當(dāng)你在本地運(yùn)行ok,但到服務(wù)器上發(fā)現(xiàn)出現(xiàn)這些錯(cuò)誤的時(shí)候,就要意識到很可能是jar沖突了(有相同依賴存在多個(gè)版本)。這個(gè)問題往往也會有這樣的表現(xiàn):多實(shí)例部署的時(shí)候,有的實(shí)例是好的,有的實(shí)例則不行。

查看加載的類和方法

根據(jù)之前分析的異常種類,我們可以去運(yùn)行中的現(xiàn)場確認(rèn)當(dāng)前加載的問題。

這里我們可以使用阿里開源的Arthas工具,如果第一次用,那么按下面操作先安裝再運(yùn)行:

  1. curl -O https://arthas.aliyun.com/arthas-boot.jar 
  2. java -jar arthas-boot.jar 

運(yùn)行好之后,會打印出當(dāng)前運(yùn)行著的java應(yīng)用,比如:

  1. [INFO] arthas-boot version: 3.4.6 
  2. [INFO] Process 40611 already using port 3658 
  3. [INFO] Process 40611 already using port 8563 
  4. [INFO] Found existing java process, please choose one and input the serial number of the process, eg : 1. Then hit ENTER. 
  5. * [1]: 40611 chapter4-3-0.0.1-SNAPSHOT.jar 
  6.   [2]: 37786 

通過輸入編號選擇要查看的java應(yīng)用,比如這里選擇:1,進(jìn)入到chapter4-3-0.0.1-SNAPSHOT.jar中去。

下面介紹兩個(gè)重要命令:

第一個(gè):sc命令,我們確認(rèn)一下可能沖突的jar包下面,是否有對應(yīng)的class。有些不同版本包下class就不一樣,馬上就可以分辨出來。

比如,通過下面的命令,我們查看一下com.didispace包下有什么類:

  1. [arthas@40611]$ sc com.didispace.* 
  2. com.didispace.chapter43.Chapter43Application 
  3. com.didispace.chapter43.Chapter43Application$$EnhancerBySpringCGLIB$$8b82b194 
  4. com.didispace.chapter43.UploadController 
  5. Affect(row-cnt:3) cost in 6 ms. 

第二個(gè):sm命令,查看具體某個(gè)類有哪些方法。有的版本差異就是去掉了某個(gè)方法,這個(gè)時(shí)候我們就可以通過這個(gè)命令來查看。

比如,通過下面的命令,我們查看一下com.didispace.chapter43.UploadController類下有些什么方法:

  1. [arthas@40611]$ sm com.didispace.chapter43.UploadController 
  2. com.didispace.chapter43.UploadController <init>()V 
  3. com.didispace.chapter43.UploadController create(Lorg/springframework/web/multipart/MultipartFile;)Ljava/lang/String; 
  4. com.didispace.chapter43.UploadController uploadPage()Ljava/lang/String; 
  5. Affect(row-cnt:3) cost in 5 ms. 

找到?jīng)_突并解決沖突

在確認(rèn)完是加載錯(cuò)誤的情況下,我們要去解決沖突。那么解決沖突要做的就是找到到底哪里沖突了以及我們要去除或者強(qiáng)制

找出版本沖突的方法:使用Maven命令:mvn -U dependency:tree -Dverbose。

命令執(zhí)行之后,會在控制臺以樹狀形式列出所有依賴內(nèi)容,然后通過搜索的方式查找沖突的包,看看都是從哪個(gè)依賴中帶進(jìn)來的(在IDEA中搜索會高亮,更容易找到)。

  1. [INFO] com.didispace:chapter4-3:jar:0.0.1-SNAPSHOT 
  2. [INFO] +- org.springframework.boot:spring-boot-starter-web:jar:2.4.1:compile 
  3. [INFO] |  +- org.springframework.boot:spring-boot-starter:jar:2.4.1:compile 
  4. [INFO] |  |  +- org.springframework.boot:spring-boot:jar:2.4.1:compile 
  5. [INFO] |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:2.4.1:compile 
  6. [INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:2.4.1:compile 
  7. [INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.2.3:compile 
  8. [INFO] |  |  |  |  \- ch.qos.logback:logback-core:jar:1.2.3:compile 
  9. [INFO] |  |  |  +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.13.3:compile 
  10. [INFO] |  |  |  |  \- org.apache.logging.log4j:log4j-api:jar:2.13.3:compile 
  11. [INFO] |  |  |  \- org.slf4j:jul-to-slf4j:jar:1.7.30:compile 
  12. [INFO] |  |  +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile 
  13. [INFO] |  |  \- org.yaml:snakeyaml:jar:1.27:compile 
  14. [INFO] |  +- org.springframework.boot:spring-boot-starter-json:jar:2.4.1:compile 
  15. [INFO] |  |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.11.3:compile 
  16. [INFO] |  |  |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.11.3:compile 
  17. [INFO] |  |  |  \- com.fasterxml.jackson.core:jackson-core:jar:2.11.3:compile 
  18. [INFO] |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.11.3:compile 
  19. [INFO] |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.11.3:compile 
  20. [INFO] |  |  \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.11.3:compile 
  21. [INFO] |  +- org.springframework.boot:spring-boot-starter-tomcat:jar:2.4.1:compile 
  22. [INFO] |  |  +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.41:compile 
  23. [INFO] |  |  +- org.glassfish:jakarta.el:jar:3.0.3:compile 
  24. [INFO] |  |  \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.41:compile 
  25. [INFO] |  +- org.springframework:spring-web:jar:5.3.2:compile 
  26. [INFO] |  |  \- org.springframework:spring-beans:jar:5.3.2:compile 
  27. [INFO] |  \- org.springframework:spring-webmvc:jar:5.3.2:compile 
  28. [INFO] |     +- org.springframework:spring-aop:jar:5.3.2:compile 
  29. [INFO] |     +- org.springframework:spring-context:jar:5.3.2:compile 
  30. [INFO] |     \- org.springframework:spring-expression:jar:5.3.2:compile 
  31. [INFO] +- org.springframework.boot:spring-boot-starter-thymeleaf:jar:2.4.1:compile 
  32. [INFO] |  +- org.thymeleaf:thymeleaf-spring5:jar:3.0.11.RELEASE:compile 
  33. [INFO] |  |  +- org.thymeleaf:thymeleaf:jar:3.0.11.RELEASE:compile 
  34. [INFO] |  |  |  +- org.attoparser:attoparser:jar:2.0.5.RELEASE:compile 

解決版本沖突的方式主要兩種:

  • 1、通過上面的命令找到不需要的版本之后,在引入的依賴中,使用exclusions將其排除,比如下面這樣:
  1. <dependency> 
  2.         <groupId>org.springframework.boot</groupId> 
  3.         <artifactId>spring-boot-starter-jdbc</artifactId> 
  4.         <exclusions> 
  5.                 <exclusion> 
  6.                         <groupId>xxx</groupId> 
  7.                         <artifactId>yyy</artifactId> 
  8.                 </exclusion> 
  9.         </exclusions></dependency> 
  • 2、在pom.xml中強(qiáng)制指定要使用的版本,這樣這個(gè)優(yōu)先級最高,就不會引入其他版本要帶進(jìn)來的版本了。

 

好了,今天的分享到這里結(jié)束了,希望對你有所幫助。如果您覺得本文有用,歡迎轉(zhuǎn)發(fā)擴(kuò)散!

 

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2020-07-03 07:59:01

Linux服務(wù)systemd

2011-04-01 16:23:14

Cacti監(jiān)控Nginx

2010-06-09 17:01:48

路由選擇協(xié)議

2014-08-13 14:48:01

LinuxShell腳本

2010-08-16 14:16:28

DB2實(shí)例

2019-06-03 15:52:21

WindowsLinux端口

2021-10-05 22:09:31

Jar加載機(jī)制

2023-06-15 08:06:55

gogolang通信

2010-08-23 10:27:14

恢復(fù)IOS

2011-09-08 18:28:03

windowsXP鎖定狀態(tài)

2012-02-09 10:31:17

Java

2009-08-28 16:16:02

線程運(yùn)行狀態(tài)

2012-03-06 09:20:02

ibmdw

2013-05-21 10:49:59

Windows硬件沖突

2019-12-01 22:08:04

Mavenjar包開發(fā)

2023-10-10 09:19:59

日志Java

2011-03-25 13:26:45

Cacti

2025-03-31 04:25:00

2018-05-18 10:22:39

沖突游戲服務(wù)器

2022-04-06 21:29:44

邊緣計(jì)算數(shù)據(jù)存儲數(shù)據(jù)中心
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

欧美日本网站| 成年免费在线观看| 国产高清视频一区二区| 一区二区三区高清| 久久久精彩视频| 在线免费看91| 亚洲国产91| 在线观看国产精品日韩av| 涩涩网站在线看| 国产极品在线观看| 中文字幕视频一区二区三区久| 91精品天堂| 99精品人妻国产毛片| 91精品观看| 亚洲人成网7777777国产| 香蕉网在线视频| 精品欧美一区二区三区在线观看| 一区二区三区美女视频| 日本高清久久一区二区三区| 亚洲狼人综合网| 蜜臀av国产精品久久久久| 久久久日本电影| 国产精品一区二区亚洲| 另类在线视频| 日韩午夜激情电影| 五月婷婷狠狠操| 黄色污网站在线观看| 亚洲猫色日本管| 亚洲精品国产精品国自产观看| 成人久久精品人妻一区二区三区| 美腿丝袜在线亚洲一区 | 91精品国产91久久久久青草| 男人午夜免费视频| 黄色精品一区| 欧美精品少妇videofree| 亚洲一区 欧美| 久久99性xxx老妇胖精品| 亚洲电影第1页| 亚洲天堂网站在线| 中文成人激情娱乐网| 在线看国产一区| 妞干网在线免费视频| 99re6在线精品视频免费播放| 亚洲欧美区自拍先锋| 亚洲国产婷婷香蕉久久久久久99| 国产裸舞福利在线视频合集| 久久看人人爽人人| 欧美成ee人免费视频| 手机福利在线| 26uuu亚洲| 你懂的网址一区二区三区| 天天干天天插天天操| 成人禁用看黄a在线| 国内精品久久久久久久果冻传媒| 国 产 黄 色 大 片| 懂色一区二区三区免费观看| 99c视频在线| 内射后入在线观看一区| 成人午夜私人影院| 国产伦理久久久| 天天操天天操天天| 91丨九色丨国产丨porny| 久久精品日产第一区二区三区| 日韩有码第一页| 99精品视频中文字幕| 玖玖玖精品中文字幕| 免费动漫网站在线观看| 中文在线一区二区| 在线天堂一区av电影| 亚洲电影视频在线| 亚洲国产日韩一级| 欧美女人性生活视频| 精品123区| 欧美三电影在线| 波多野结衣免费观看| 91欧美极品| 日韩精品电影网| 中文字幕黄色网址| 亚洲欧美综合| 欧美最猛性xxxxx亚洲精品| 人人妻人人爽人人澡人人精品 | 国产精品麻豆久久| 欧美成人久久久| 中日韩精品视频在线观看| 久久精品九九| 91九色精品视频| 熟妇人妻中文av无码| 国产人久久人人人人爽| 亚洲欧美日韩不卡| 免费成人在线电影| 欧美日韩精品系列| 催眠调教后宫乱淫校园| 久久99国产精品视频| 久久久精品视频成人| 国产成人在线观看网站| 久久精品国产亚洲a| 国产精品免费看一区二区三区| 久草视频视频在线播放| 亚洲精品欧美在线| 久久精品.com| 日韩中文字幕无砖| 亚洲天堂av在线免费| 91高清免费观看| 免费一区视频| 高清无码视频直接看| 老熟妇一区二区三区| 国精品**一区二区三区在线蜜桃 | 91啪亚洲精品| 亚洲欧美日韩国产成人综合一二三区 | 国产一二三四区在线观看| av美女在线观看| 欧美日韩大陆在线| 搡老熟女老女人一区二区| 亚洲草久电影| 国产不卡av在线免费观看| 亚洲成人黄色片| 国产精品国产精品国产专区不蜜 | 韩国欧美国产一区| 欧美一区二区三区四区夜夜大片| 污污的视频在线观看| 91国偷自产一区二区使用方法| 国产无套精品一区二区三区| 日韩欧美综合| 日韩美女视频免费看| 亚洲精选一区二区三区| 亚洲色图欧美激情| 男人插女人下面免费视频| 里番精品3d一二三区| 欧美大片网站在线观看| 91 中文字幕| 国产日韩欧美综合在线| 国产精品后入内射日本在线观看| 一区中文字幕| 欧美成在线视频| 一起草av在线| 中文字幕av不卡| 尤蜜粉嫩av国产一区二区三区| 羞羞答答一区二区| 91精品国产高清自在线| 亚洲伦理在线观看| 亚洲综合成人网| 亚洲综合中文网| 中文字幕午夜精品一区二区三区 | 亚洲欧洲免费| 欧美一区视频在线| 日本福利午夜视频在线| 岛国av在线不卡| 亚洲制服丝袜在线播放| 日韩一级欧洲| 免费一区二区三区在在线视频| 韩国成人二区| 亚洲免费人成在线视频观看| 看片网址国产福利av中文字幕| 波多野结衣中文一区| 黄色一级在线视频| 久久99久久人婷婷精品综合| 国产成人鲁鲁免费视频a| 精华区一区二区三区| 91国产精品成人| 美国精品一区二区| 激情文学综合插| 日韩一级免费看| 麻豆一区二区| 国产精品96久久久久久| 男人天堂久久久| 日韩欧美亚洲国产另类| 国产污视频在线看| 久久在线观看免费| 男女无套免费视频网站动漫| 国产精品99久久| 97视频热人人精品| 妞干网免费在线视频| 亚洲免费一级电影| 中文字幕乱码无码人妻系列蜜桃| 国产精品国产三级国产a | 2欧美一区二区三区在线观看视频| 日韩毛片在线免费看| 欧美jizz| 国产精品日韩欧美一区二区三区| 一根才成人网| 日韩一区视频在线| 亚洲精品人妻无码| 日本韩国欧美一区二区三区| 免费三级在线观看| 91麻豆123| 中文字幕第38页| 亚洲天堂激情| 亚洲精品9999| 9l视频自拍蝌蚪9l视频成人| 日韩av免费在线看| 1区2区3区在线视频| 精品在线观看国产| 99草在线视频| 色综合久久88色综合天天免费| 亚洲少妇xxx| 99久久综合精品| 久久久久久久久久一区二区| 99精品国产99久久久久久福利| 日韩欧美一区二区三区久久婷婷| 视频精品一区二区三区| 国产成人一区二区在线| 国产高清在线a视频大全| 国产香蕉精品视频一区二区三区| www.成人在线观看| 欧美吻胸吃奶大尺度电影| 久久黄色小视频| 国产精品少妇自拍| 中文字幕在线观看网址| 国产精品主播直播| 久热精品在线观看视频| 久久视频一区| 福利视频一区二区三区四区| 欧美高清在线| 天堂精品一区二区三区| 中文字幕一区图| 成人av在线网址| 免费高清视频在线一区| 欧美一级免费看| 国产亚av手机在线观看| 久久久999精品免费| 成年人免费在线视频| 日韩精品一区二区三区第95| 亚洲国产一二三区| 91精品国产综合久久久蜜臀图片| 波多野结衣视频网站| 亚洲午夜三级在线| 免费成年人视频在线观看| 国产农村妇女毛片精品久久麻豆| 北岛玲一区二区| 丁香六月综合激情| 四虎国产精品免费| 国产裸体歌舞团一区二区| 自拍偷拍一区二区三区四区| 视频一区中文字幕国产| 日本精品免费在线观看| 亚洲精品日韩久久| 五月丁香综合缴情六月小说| 欧美国内亚洲| 日本大胆人体视频| 欧美福利电影在线观看| 影音先锋男人的网站| 水蜜桃久久夜色精品一区| 亚洲精品一区二区毛豆| 精品国产一区探花在线观看| 欧美少妇一区| 欧美色爱综合| 亚洲精品在线免费看| 93在线视频精品免费观看| 亚洲欧洲在线一区| 91综合久久一区二区| 天天爱天天做天天操| 中文一区一区三区免费在线观看| 激情视频小说图片| 黄色成人91| 激情伊人五月天| 国产精品婷婷| 国产理论在线播放| 激情深爱一区二区| 波多野结衣三级视频| 成人福利视频在线| 中文字幕丰满乱子伦无码专区| 久久久精品黄色| 人妻熟人中文字幕一区二区| 国产精品嫩草影院com| 欧美特黄一级片| 一区二区三区欧美在线观看| 久久久久久久久久一区二区三区| 午夜伊人狠狠久久| 国产寡妇亲子伦一区二区三区四区| 欧美性色欧美a在线播放| 亚洲网站在线免费观看| 日韩一区二区免费在线电影| 黄色av网址在线| 亚洲天堂av电影| 日本三级视频在线观看| 欧美俄罗斯性视频| 竹内纱里奈兽皇系列在线观看| 国产成人在线精品| 国产一区 二区| 精品乱子伦一区二区三区| 国产99久久| 精品一区二区成人免费视频| 亚洲精品激情| 另类小说第一页| 懂色av中文一区二区三区| 谁有免费的黄色网址| 亚洲精品成a人| 国产无遮挡呻吟娇喘视频| 欧美人体做爰大胆视频| 色婷婷视频在线| 中文字幕国产日韩| 国产三级伦理在线| 国产日韩欧美成人| 日韩av资源网| 天堂v在线视频| 亚洲欧美日韩专区| 人妻体体内射精一区二区| 国产喂奶挤奶一区二区三区| 九九热最新地址| 日韩欧美成人区| 性一交一乱一精一晶| 国产一区二区美女视频| 丰满大乳少妇在线观看网站| 国产精品美女呻吟| 欧美午夜寂寞| 亚洲色婷婷久久精品av蜜桃| 天堂在线亚洲视频| 亚洲av成人精品一区二区三区| 国产精品麻豆一区二区 | 在线观看91精品国产麻豆| 色欲av伊人久久大香线蕉影院| 色噜噜久久综合伊人一本| 亚洲第一av| 国产女主播一区二区| 最新精品国产| 欧美成人乱码一二三四区免费| 91小视频免费看| 久久丫精品久久丫| 制服丝袜中文字幕亚洲| 免费黄色在线视频网站| 午夜精品国产精品大乳美女| 日韩精品一区二区三区中文在线 | 亚洲视频免费| 色91精品久久久久久久久| 久久精品视频一区二区| 中日韩黄色大片| 精品成人a区在线观看| 中文字幕伦理免费在线视频| 国产欧美精品一区二区| 精品视频97| www.色偷偷.com| 国产人成一区二区三区影院| 日韩欧美三级视频| 日韩av在线网站| 91高清视频在线观看| 国产精品久久久久久久小唯西川| 亚洲欧美偷拍自拍| 亚洲色图欧美自拍| 日韩一区在线免费观看| 国产精品久久久久久久免费| 色偷偷888欧美精品久久久| 国产黄色精品| 亚洲日本理论电影| 麻豆国产91在线播放| 中文字幕av久久爽一区| 欧美四级电影在线观看| av资源种子在线观看| 国产精品色婷婷视频| 色88久久久久高潮综合影院| 一级在线免费视频| 国产精品超碰97尤物18| 国产一区二区三区成人| 久久伊人精品一区二区三区| 美女国产精品久久久| 国产91沈先生在线播放| 波波电影院一区二区三区| av大片免费在线观看| 亚洲男人天堂久| 天然素人一区二区视频| 亚洲欧洲另类精品久久综合| 黄页网站大全一区二区| 国产精品老熟女一区二区| 精品久久久久久无| 美女搞黄视频在线观看| 欧美日韩精品免费看| 免播放器亚洲一区| 国产激情无码一区二区三区| 欧美变态tickling挠脚心| 玖玖在线播放| 日韩在线观看电影完整版高清免费| 免费成人你懂的| 久久机热这里只有精品| 亚洲乱码国产乱码精品精| 99精品在免费线偷拍| 看一级黄色录像| 99在线视频精品| 中文字幕精品一区二区精| 欧美精品做受xxx性少妇| 理论片一区二区在线| 亚洲性生活网站| 亚洲欧美激情在线| 天堂在线视频免费观看| 国产精品激情av在线播放 | 久久综合五月天| 久久99国产精品久久99大师| 中文字幕第21页| 一区二区国产盗摄色噜噜| 三级做a全过程在线观看| 国产欧美日韩中文字幕| 日韩视频二区| 精品国产大片大片大片| 亚洲精品第一国产综合精品| 成人av集中营| 成人免费观看cn| 亚洲欧洲99久久| 人人妻人人玩人人澡人人爽| 国产精品日韩在线播放| 伊人精品成人久久综合软件| 欧美激情久久久久久久| 亚洲国产精品中文|