簡體   English   中英

在服務器機制上部署戰爭

[英]Deploying war on server mechanism

當我開發任何 Web 應用程序時,我添加了許多我的代碼依賴於它們的 jar。 我想知道當我在服務器上部署戰爭時,服務器或容器如何使用這些 jar,如果我直接將它們放在服務器的模塊上,這對發布或部署有好處嗎?!

在服務器類路徑上使用 jar 依賴項沒有優勢。 這將迫使您依賴服務器本身,這在處理持續交付時不是一個好主意。

順便說一句,您應該知道每個war文件在部署時都有自己的類路徑,所以如果您部署一些war ,假設在 Tomcat 服務器上,它將使用它自己的類路徑,其中包含必要的 jars。 容器(在本例中為 Tomcat)對這些 jar 一無所知,但您的應用程序會。

當您的代碼執行時,容器將在您的戰爭中查看依賴的 jar 是否可用。 如果它在你的戰爭中找不到依賴的 jar,那么容器將遍歷它的樹,看看它是否可以在容器本身的某個地方找到依賴。 通過配置,可以逆轉,最后檢查戰爭。

war 應該是獨立的,war 的 WEB-INF/lib 文件夾中包含依賴的 jar。 配置容器(可能是默認值)以首先檢查戰爭。 這保持了隔離,這有助於隨着時間的推移保持應用程序穩定。 例如,容器可能已更新,但您的應用程序不應需要更新。

將這些依賴 jar 部署到戰爭之外,到容器內的某個位置到共享文件夾,可能會使所有已部署的應用程序和/或容器本身可以看到這些依賴 jar。 這最終會導致 jar 版本沖突和類加載器問題。 不要這樣做!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM