1. 程式人生 > >同一個Tomcat下發布多個使用Log4j的專案報錯

同一個Tomcat下發布多個使用Log4j的專案報錯

SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener

java.lang.IllegalStateException: Web app root system property already set to different value: 'webapp.root' = [/home/wh/apache-tomcat-7.0.54/webapps/UrgentSMS/] instead of [/home/wh/apache-tomcat-7.0.54/webapps/TourismBigData/] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!
at org.springframework.web.util.WebUtils.setWebAppRootSystemProperty(WebUtils.java:148)
at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:117)
at org.springframework.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

結論:原因日誌已經說的很明確,我這裡只是將我遇到的錯誤做個記錄,在同一個Tomcat下發布多個使用Log4j的專案,log4j.properties配置檔案配了這麼一句話 log4j.appender.infoLog.File=${webapp.root}/logs/info.log,
但是沒有在專案中的web.xml中明確加上
< context-param>
< param-name>webAppRootKey< /param-name>
< param-value>webapp.two< /param-value>
< /context-param>
這段配置資訊,系統就會預設webAppRootKey的值是webapp.root,webapp.root對應的是專案的根路徑,所以當有兩個使用該值的專案同時在一個Tomcat下面時會報錯,因為一個key只能儲存一個value,後初始化的會替換先初始化的,所以小夥伴們遇到這樣的問題就去每個專案的web.xml裡面給webAppRootKey重新賦個值吧,不能重複,因為是key嘛

相關推薦

同一個Tomcat下發使用Log4j專案

SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener

tomcat下發專案webAppKey重複設定

解決辦法就是在每個專案的web.xml中設定 <context-param> <param-name>webAppRootKey</param-n

同一個tomcat下部署springboot專案時,springboot專案無法正常啟動的問題

這個問題是基於,不使用springboot內建的tomcat會產生(即使用自己的tomcat時)。 今天在部署springboot專案的時候遇到了一個問題,怎麼部署都訪問不了,在網上查了很多原因,什麼pom.xml中依賴沒加,或者依賴衝突等等 各種原因都試了 ,結果還是訪問不了,這就

.net同一個解決方案下面web專案的解決方法

經過n次的google,下面是解決方法: 1. 新建一個web application 2. 在該application中新建資料夾SubSystem 3. 在整個的專案中新增web site。注意這其中的路徑(這裡的路徑是上面新建的資料夾的路徑)。 4. 上面的 工程中

nginx 輔助 同一個tomcat繫結二級域名及輔助tomcat繫結二級域名

公司現階段部署環境,一臺Linux伺服器,部署了4個專案,一個專案A 單獨使用一個tomcatA     ,專案B,C,D 使用同一個tomcat B。 一開始BCD專案通過配置tomcat 配置檔案中Server.xml 中的HOST 節點來達到同一個tomcat使用

遇到問題--mongodb---criteria.orOperator或者criteria.andOperator

報錯在使用java驅動構造mongodb查詢過程中發現多個criteria.orOperator或者多個criteria.andOperator報錯。報錯資訊如下:you can't add a second '$or' expression specified $or 解決

vue中使用axios.all() 方法發起請求控制檯的解決方法

今天在專案中使用axios時發現axios.all() 方法可以執行但是控制檯報錯,後來在論壇中看到是由於axios.all() 方法並沒有掛載到 axios物件上,需要我們手動去新增 == 只需要在

同一個Tomcat部署springboot專案問題

2018-12-13 10:37:21,412 ERROR [localhost-startStop-2] c.a.d.s.DruidDataSourceStatManager [DruidDataSourceStatManager.java : 211] unregister mbean erro

web專案Log4j日誌輸出路徑配置問題 問題描述:一個web專案想在一個tomcat下執行例項(通過修改war包名稱的實現),然後每個例項都將日誌輸出到tomcat的logs目錄下例項名命名的文

問題描述:一個web專案想在一個tomcat下執行多個例項(通過修改war包名稱的實現),然後每個例項都將日誌輸出到tomcat的logs目錄下例項名命名的資料夾下進行區分檢視每個例項日誌,要求通過儘可能少的改動配置檔案,最好修改例項名後可以不修改log4j的配置檔案。 實現分析:一般實現上面需求,需要在修

同一個windows server 部署tomcat

只需要修改tomcat目錄下conf下的server.xml檔案即可,修改地方有三個,把下面這幾個埠修改了為不同的埠即可,例如我把這幾個埠統一減1了 <Server port="8004" shutdown="SHUTDOWN"> <Connector port="8079" proto

tomcat配置虛擬目錄的最正確方式和部署web專案

tomcat 配置虛擬目錄的最正確方式 在部署web專案到伺服器上的時一般都是這麼配置的: 配置虛擬目錄不是配置虛擬路徑,虛擬目錄的意思是,web專案名稱。 1.虛擬目錄的對映: Web開發以後交給伺服器,要想被外界訪問,就得把目錄交給伺服器管理,這個過程叫做虛

(配詳細圖解)同一個伺服器上部署tomcat教程-----------健康之家

下面我把配置的詳細過程寫在下面,以供參考:(此例以配置三個Tomcat為例) 第一:下載解壓準備好Tomcat 1. 下載apache-tomcat-8.5.32,下載下來的檔案為apache-tomcat-8.5.32.zip. 2. 解壓該壓縮包到D:/Apache/目錄下。 3. 修改

一個tomcat下部署專案或一個伺服器部署tomcat

最近需要把兩個專案同時部署到伺服器上,於是研究了一下,頁借鑑了很多別人的方法,把過程記錄下來,以儆效尤。 目錄: 1,一個tomcat下同時部署兩個專案(多個專案可以參考) 1.1專案都放在webapps內(共用一個埠) 1)把兩個專案都放在webapps下。 2)處理重複

tomcat中部署專案時遇到問題

SEVERE: Error listenerStart 2017-2-27 16:24:48 org.apache.catalina.core.StandardContext start SEVERE: Context [/JYZX2] startup failed due

idea——同一個專案module(eclipse的同一個工作空間的專案?)

(idea)建立專案下多個module==(eclipse)同一個工作空間下的多個專案 以往的Eclipse、NetBeans等開發工具不同,IDEA的Project相當與Eclipse的Workspace,而Module相當於Project。 下邊就給出Eclipse與IDEA的概念的

IDEA合併Maven專案同一個Maven專案下顯示(類似於Eclipse的WorkSpace)

第一步:將多個maven專案拷貝到同一個資料夾(比如WorkSpace目錄)下; 第二步:開啟IntelliJ IDEA編譯器,點選選單 File->Open...,選擇剛剛的WorkSpace目錄: 點選OK開啟WorkSpace目錄。開啟後介面如下: 第三步:

tomcat同時存在專案webapp.root問題

嚴重: Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListenerjava.lang.IllegalStateExcept

同一tomcat下部署工程log4j衝突的問題

本文來自多個播客轉載拼接而成,時間比較長,因此對於出處不能描述詳盡,在此對各位作者致敬並表示歉意。 同一tomcat伺服器下部署多個專案,容易發生衝突,日誌檔案會同時寫入同一個專案的log目錄中,正常情況下在一個tomcat中只會部署一個專案,此情況發生不多,但是一旦發生,

Tomcat上部署Java Web專案

最近兩週特意整理自己的網站和自己大學三年寫過的java專案,在關於java web專案部署到輕量級伺服器Tomcat上,遇到一些問題,主要是關於Tomcat的一些配置問題;記錄一下,以免後面開發的時候忘記.多專案部署到Tomcat上,主要的方法有:1 直接將web專案檔案件拷

IntelliJ IDEA匯入eclipse專案同一個workspace下

IntelliJ IDEA 與eclipse在新建專案上工作區的叫法略有不同,區別見下圖。 我們在eclipse都是在新建的workspace目錄下新建我們的專案,但是在IDEA中沒有workspace這個概念,IDEA中的專案就相當於eclipe中的workspace,