亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 淺談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

武穴市| 谢通门县| 泰顺县| 吉首市| 辉县市| 泽州县| 香河县| 百色市| 滨海县| 泸州市| 隆林| 洪泽县| 年辖:市辖区| 安阳县| 南木林县| 万年县| 咸宁市| 旬阳县| 平山县| 文水县| 涿鹿县| 怀安县| 丁青县| 南郑县| 荣昌县| 田阳县| 南康市| 寿阳县| 金阳县| 永泰县| 塘沽区| 五华县| 磐石市| 岑溪市| 新巴尔虎右旗| 鞍山市| 拜泉县| 海南省| 清流县| 沐川县| 万全县|