91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 淺談JNDI導入兩個同名不同路徑jar包的先后次序影響程序運行結果的問題

淺談JNDI導入兩個同名不同路徑jar包的先后次序影響程序運行結果的問題

發布時間:2020-06-30 20:35:18 來源:網絡 閱讀:1486 作者:白無雙 欄目:開發技術

    今天下午我做了一個關于學生信息管理系統的demo,主要功能是使用jdbc對學生信息進行增刪改查,整體的邏輯按照JNDI進行,使用oracle數據庫。

    第一次運行,果不其然出現了異常,參照下圖:


淺談JNDI導入兩個同名不同路徑jar包的先后次序影響程序運行結果的問題

   

    經過檢查,我發現我oracle的jar包導入路徑錯了,沒有按照JNDI中的要求導入到tomcat文件夾下的lib文件夾中,而是導入到了項目的lib文件夾中。我向tomcat文件夾下的lib文件夾中添加了同名的jar包,我以為這樣一來,程序就能正常運行了。

    然而并沒有。

    異常還是這個異常,ClassNotFoundException,無法加載oracle數據庫的驅動。

    我意識到可能是因為兩個同名的jar包同時存在,tomcat在處理上可能存在某一方面的優先級。于是我決定把之前錯誤路徑上的jar包給刪掉,只保留正確路徑上的jar包。經過這次改動,程序可以正常運行了。


淺談JNDI導入兩個同名不同路徑jar包的先后次序影響程序運行結果的問題

淺談JNDI導入兩個同名不同路徑jar包的先后次序影響程序運行結果的問題

    

    到了這里,這個項目運行成功了,然而接下來才是正題。

    項目成功運行后,我突發奇想,如果在已存在正確路徑中jar包的基礎上,在錯誤的路徑上再導入一個jar包,會不會重新產生異常呢?

    答案再次出乎我的意料,還是沒有。程序運行得非常順利。

    我逐漸意識到,這個現象的產生,可能與jar包導入的先后次序有關系。于是我新建了一個項目,項目內容與這個相同。我先導入了一個錯誤(指路徑不為tomcat文件夾下lib文件夾中的jar包,下文的正確同義)的jar包,運行程序,然后導入了正確的jar包,這次的運行結果與第一次運行的結果相同。

    第二次,我先導入了一個正確的jar包,運行程序,然后導入了錯誤的jar包,這次的運行結果與上文運行成功的效果相同。

    那么,如果正確和錯誤的jar包都存在,但是在兩個jar包都導入完成之前沒有運行程序,結果又會怎么樣呢?帶著這個疑問,我開始了第三次的測試。測試的結果是程序可以成功運行。

    經過上面三次的測試,對于JNDI中jar包導入先后次序影響運行結果的問題,我簡單總結如下:

   (1)某一時刻,只要運行了含有某個jar包的程序,即便在別的路徑導入一個同名的jar包,運行的結果都會與之前的一致。只有把先導入的jar包在其路徑中刪除,程序才會在另一個jar包的基礎上運行。可以把這種現象理解為一種“先入為主”的效果。

   (2)在JNDI中,如果同時存在正確和錯誤的jar包,且在兩個jar包都導入完成前沒有運行程序,則程序能夠正常運行。


    注:在本個demo中,我使用的是Java EE 5.0,Tomcat 6.0,更高級別的版本可能不會出現此類問題。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吉林省| 汨罗市| 开化县| 柏乡县| 绥棱县| 孟州市| 琼海市| 平远县| 博兴县| 驻马店市| 惠州市| 青神县| 拉萨市| 色达县| 广元市| 大埔县| 图木舒克市| 泰来县| 东方市| 宁城县| 平利县| 锡林浩特市| 互助| 静海县| 依安县| 德安县| 华容县| 繁昌县| 友谊县| 佛教| 鄯善县| 泽普县| 岐山县| 曲靖市| 遂溪县| 尉氏县| 疏附县| 荥经县| 突泉县| 余庆县| 建昌县|