tomcat兩個項目沖突

java.lang.IllegalStateException: Web app root system property already set to different value

最近在搭建項目環境的時候出現了下面的錯誤

java.lang.IllegalStateException: Web app root system property already set to different value: 'webapp.root' = [D:/tomcat-5.0.19/webapps/tzbms/] instead of [D:/tomcat-5.0.19/webapps/its/] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!

?

后來查了資料才知道

webAppRootKey是在java web項目的web.xml配置文件中表示項目的唯一標示,Eclipse調試Web項目時,項目的路徑是一個臨時路徑,不在真正的路徑下,可以通過log4j日志的方式打印出屬性值,來看看臨時項目路徑在哪里,可以用System.getProperty("web.sample.root");如果web.xm 內沒有設置webAppRootKey項,是為默認設置,那么webAppRootKey就是缺省的"webapp.root"。

下面是相關源碼

1.???? ·??public??static??void??setWebAppRootSystemProperty(ServletContext?servletContext)?throws??IllegalStateException??{

2.???? ????????String??param?=?servletContext.getInitParameter(WEB_APP_ROOT_KEY_PARAM);

3.???? ????????String??key?=?(param?!=?null????param?:?DEFAULT_WEB_APP_ROOT_KEY);

4.???? ????????String??oldValue?=?System?.getProperty(key);

5.???? ????????if??(oldValue?!=?null?)?{

6.???? ????????????throw??new??IllegalStateException?("WARNING:?Web?app?root?system?property?already?set:?"??+?key?+?"?=?"??+

7.???? ????????????????????????????????????????????????????????????????

8.???? ?

9.???? ????????????oldValue?+?"?-?Choose?unique?webAppRootKey?values?in?your?web.xml?files!"?);

10.?? ????????}

11.?? ????????String??root?=?servletContext.getRealPath("/"?);

12.?? ????????if??(root?==?null?)?{

13.?? ????????????throw??new??IllegalStateException?("Cannot?set?web?app?root?system?property?when?WAR?file?is?not?

14.?? ?

15.?? expanded");

16.?? ????????}

17.?? ????????System?.setProperty(key,?root);

18.?? ????????servletContext.log("Set?web?app?root?system?property:?"??+?key?+?"?=?"??+?root);

19.?? ????}

20.?? ?

21.???


從代碼看出,該方法其實就是把該web?application的根目錄的絕對文件路徑作為屬性保存在 System的屬性列表中。該屬性的名字,由web.xml文件中的名為"webAppRootKey"的參數值指出。如果不在web.xml中定義 webAppRootKey參數,那么屬性名就是缺省的"webapp.root".

?

但最好設置,以免項目之間的名稱沖突。

?

?

Spring通過 org.springframework.web.util.WebAppRootListener 這個監聽器來壓入項目路徑。但是如果在web.xml中已經配置了 org.springframework.web.util.Log4jConfigListener
這個監聽器,則不需要配置WebAppRootListener了。因為Log4jConfigListener已經包含了WebAppRootListener的功能

部署在同一容器中的Web項目,要配置不同的<param-value>,不能重復

如果配置了
log4j.appender.file.File=${web.sample.root}/WEB-INF/logs/sample.log??

log4j會自己自動建立logs目錄, 不需要手工顯式建立空的logs目錄

?

?

解決方案:

在啟動出現錯誤的工程web.xml增加如下語句便可

<context-param>

<param-name>webAppRootKey</param-name>

<param-value> app.root </param-value>

</context-param>










本文轉自 yntmdr 51CTO博客,原文鏈接:http://blog.51cto.com/yntmdr/1981235,如需轉載請自行聯系原作者

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/286194.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/286194.shtml
英文地址,請注明出處:http://en.pswp.cn/news/286194.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

四、一般頁面制作《仿淘票票系統前后端完全制作(除支付外)》

一、播放影片影院頁制作 上一節已經做完了首頁所有欄目內容&#xff0c;那么點擊購票后應該出現對應有購票的影院&#xff0c;選擇影院后進入購買票務頁。 首先新建一個頁面命名為播放該影片的影院&#xff1a; 接著復制首頁中的標題欄到播放影片的影院頁中&#xff0c;此時…

SuppressLint黃色警告的原因以及解決辦法

最近在做項目的時候&#xff0c;碰到方法的前面和類的前面有時會出現SuppressLint或者SuppressWarnings這樣的黃色警告&#xff0c;看起來很不舒服&#xff0c;于是上網搜集了一些相關資料。發現這些警告的出現其實是由于我們編寫代碼時的一些不規范的寫法導致&#xff0c;解決…

重磅!win10無法安裝.NET Framework 3.5服務解決辦法(附離線安裝包下載)

安裝CASS測圖軟件之前需要安裝CAD,Win10操作系統安裝CAD時經常會需要.net framework 3.5,win10中默認是沒有安裝該環境的,需要單獨安裝。本文講解Win10系統中在線和離線安裝.net framework 3.5。 CAD 2006+CASS 7.1安裝參考:《Win 10操作系統CAD 2006+CASS 7.1安裝圖文經典…

C語言試題三十六之將s所指字符串中所有下標為奇數位置上的字母轉換為大寫(若該位置上不是字母,則不轉換)。

??個人主頁:個人主頁 ??系列專欄:C語言試題200例目錄 ??推薦一款刷算法、筆試、面經、拿大公司offer神器 ?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 請編寫一個…

數據結構實驗之鏈表二:逆序建立鏈表

數據結構實驗之鏈表二&#xff1a;逆序建立鏈表 Time Limit: 1000MS Memory Limit: 65536KBSubmit StatisticProblem Description 輸入整數個數N&#xff0c;再輸入N個整數&#xff0c;按照這些整數輸入的相反順序建立單鏈表&#xff0c;并依次遍歷輸出單鏈表的數據。Input 第一…

執行yum:Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again...

安裝eple源&#xff0c;在yum clean all&#xff1b;yum makecache 后出現報錯Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again解決辦法&#xff1a;sed -i s/mirrorlist/\#mirrorlist/g epel.repo epel-testing.reposed -i s/\#…

700行無用 純 CSS 祝考生 金榜高粽《1_bit 的無用 CSS 代碼 》

今天才想起來這回事&#xff0c;沒辦法就急急忙忙的趕工一下&#xff0c;接下來我就畫一下這個海報試試手了&#xff1a; 一、背景制作 1.1 準備工作 先給整個網頁制作一個布局吧&#xff0c;直接 flex 搞定&#xff0c;并且使其居中 justify-content、align-items 都要賦值為…

【CASS精品教程】win10安裝CAD+CASS過程中出現的錯誤問題及解決辦法集錦

文章目錄 1. 無法安裝2. 提示DWF Viewer、AutoCAD2008未安裝3. 安裝完成后一直出現如下窗口4. Win10 64位 cass9.1+cad2008打開后出現Frame主框架程序沒有加載。5. 注冊程序無法運行,提示由于無法安裝此service pack。1. 無法安裝 解決辦法:開啟Administrator,以管理員身份…

(01).NET MAUI實戰 建項目

1.概要本系列文章將會針對.NET MAUI實戰開發的一些內容&#xff0c;會長期不間斷更新我了解學習到的內容。當學習新的軟件開發技術時&#xff0c;都會從基礎建項目開始MAUI也不例外。ref&#xff1a;https://docs.microsoft.com/zh-cn/dotnet/maui/get-started/first-app?pivo…

Android Studio 引用aar包 更新后找不到新增的方法問題(踩坑)

明明已經更新了aar文件&#xff0c;但死活找不到新增的方法&#xff0c;代碼提示里也找不到新增的方法名&#xff0c;但編譯能編譯&#xff0c;運行也一切正常&#xff0c;只是IDE一直提示錯誤&#xff0c;有強迫癥的小猿好幾天都想不明白。 其間有高手指教說&#xff1a;“那…

VMware Workstation與VMware vSphere的區別

在學完vSphere后&#xff0c;想起了VMware Workstation。這兩個都是虛擬化的東西&#xff0c;這兩者到底有什么本質的不同呢&#xff1f;順著我的思路我開始將所學過的進行檢索期望從中尋到一絲半點的線索。很快大腦中建立了兩個對他們明顯的標簽 VMware Workstation&#xff1…

C語言試題三十七之求除一個2×m整型二維數組中最大元素的值,并將此值返回調用函數。

??個人主頁:個人主頁 ??系列專欄:C語言試題200例目錄 ??推薦一款刷算法、筆試、面經、拿大公司offer神器 ?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 請編寫一個…

RSA加密解密

http://files.cnblogs.com/files/liuJava/rsa.zip、 直接上工具類 JAR 和前臺JS 都在上面的鏈接里 package my.tools.security;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.Obj…

Atitit.js圖表控件總結

Atitit.js圖表控件總結 1. 為什么要使用圖表1 2. 圖表分類1 3. 數據可視化的優點1 4. 流行的js圖表類庫1 5. 參考2 1. 為什么要使用圖表 因為要可視化 2. 圖表分類 條形圖、柱狀圖、折線圖和餅圖是圖表中四種最常用的基本類型 分類 條形圖、柱狀圖、折線圖和餅圖是圖表中四種最…

Matlab圖像處理函數大全(建議收藏)

文章目錄 第1章: 圖像顯示與圖像文件輸入輸出函數第2章: 圖形繪制第3章: 圖像類型和類型轉換第4章: 圖形用戶界面工具第5章: 空間變換和圖像配準第6章: 圖像分析和統計第7章: 圖像代數運算第8章: 圖像增強第9章: 圖像去模糊第10章: 線性濾波和變換第11章: 形態學操作…

Asp.net 批量導入Excel用戶數據功能加強版

平時我們用Asp.net導入用戶&#xff0c;一般是提供一個用戶Excel表的模板&#xff0c;實際導入數據時并非有些人愿意按你的模版制表&#xff0c;因此對Asp.net導入功能進行加強&#xff0c;可以導入非模版化的Excel數據&#xff0c;并且支持一次處理多個Sheet表&#xff0c;方便…

C語言試題三十八之將s所指字符串中除了下標為偶數、同時ascii值也為偶數的字符外,其余的全都刪除;串中剩余字符所形成的一個新串放在t所指的一個數組中。

??個人主頁:個人主頁 ??系列專欄:C語言試題200例目錄 ??推薦一款刷算法、筆試、面經、拿大公司offer神器 ?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 請編寫一個…

C#+Signalr+Vue實現B站視頻自動回復評論,當一個最懶程序員!

Part1前言前幾天刷到了程序員魚皮的自動回復視頻評論的視頻&#xff0c;于是我也想來試試&#xff01;Part2開始第一步打開想要自動回復評論的視頻url&#xff0c;打開調試模式&#xff01;然后找到可以觸發評論的網絡請求可以看到我們的oid是可以唯一確定視頻的id,那么這個oid…

一張圖不用,純CSS 做個生日賀卡

朋友生日了&#xff0c;直接畫&#xff0c;炫技并且表示本人閑的全身疼才會去拿CSS畫畫&#xff0c;以此嘲弄對方的加班&#xff1a; 既然賀卡做出來了&#xff0c;那就順便介紹一下賀卡制作流程吧&#xff0c;其實也不是什么技術&#xff0c;也就是CSS 拼拼拼就可以了&#…