XXXX項目詭異問題

【XXXX項目上線】  原來就有在生產上運行的項目

basic-cloud-basic-data  上線 

dev 部署  正常 , 

 test1部署大部分正常,

uat部署正常(出現過一次不正常,後來自己好了) 因爲最後上線的當天才上uat測試 

prod上線, 一次都不正常,

見鬼了 見鬼了,

解決問題順利

1、jenkins 清理工作空間  重發        不正常

2、查看日誌     ibatis.reflection.ReflectionException: Could not set property 'noChar' of 'class com.pica.cloud.foundation.basic.data.vo.ConstantsView' with value '' Cause: org.apache.ibatis.reflection.ReflectionException: There is no setter for property named 'noChar' in 'class com.pica.cloud.foundation.basic.data.vo.ConstantsView'

     奇怪,看代碼 這個ConstantsView 是有對應的屬性noChar的,

     並且本地運行沒有問題!

3、把對應的jar拿到本地進行查看  沒有問題 確定jar沒有問題

4、見鬼了,, 把uat環境正常運行的pica-cloud-basic-data jar在prod運行  不正常

5、自己本機手動打包(不通過jenkins打包)  並且在本地正常運行, 拷貝至prod 運行   不正常   見鬼

6、重新查看日誌  對比 ConstantsView.class  發現一點詭異的問題, 就是多了一個內部類似的

7、重新查看ConstantsView代碼 代碼詭異  但是不應該會影響發佈不成功 ;  死馬當活馬看看

8、刪除詭異代碼  重新打包    運行   不正常。

9、在idea 中,在使用的地方點ConstantsView  發現鏈接到ConstantsView.class  裏面不含有 noChar     終於發現問題點了,  有可能引用了兩個重複的jar 版本不一樣

10、查找pom.xml  發現有一個引用了一個很舊jar      

     

<dependency>
<groupId>com.pica.cloud.foundation</groupId>
<artifactId>common</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>

    就是上面這個版本  久版本

同時還有一個版本  這個是新版本

<dependency>
<groupId>com.pica.cloud.foundation</groupId>
<artifactId>pica-cloud-basic-data-common</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>

 

基本確定就是這個問題引起的 ,刪掉舊版本jar  問題得到解決!

 

11、回過頭細想:

     a、一開始有問題,雖然概率很小,但是沒有引起重視, 不夠嚴謹! 技術是一個相對很確定的事情,沒有什麼可能概率,凡是有可能出錯,就一定會出錯。

     b、請細看 仔細看日誌,哪怕再熟悉不過的錯誤提示日誌,也請細看,不要放過任何一個細微的單詞。關聯解決問題的靈感可能就這麼一個細微的單詞。

     c、不要相信所謂線上、以往正常的事項,往往這裏有坑的話就是巨坑。

     d、要敢於嘗試,敢於試錯,推演不等於實踐。

     e、所謂的大坑,難點,解決後,其實就那麼回事,就一兩個點,一直沒有繞過去而已。

          細想其實就是正確的jar存在,但是沒有生效而已,那爲什麼沒有生效,其實就是可能被替換,怎麼才能被替換?

          他們包路徑,類名字得一樣吧? 這不就這然想到可能有兩個jar麼?  就像當時log4j2接入,內置變量sys:LOG_PATH 就差那麼一點點而已。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章