最近直接把兩個項(xiàng)目打成war包在tomcat下發(fā)布,出現(xiàn)了很多莫名奇妙的問題,就是不能發(fā)布成功,只能有一個項(xiàng)目能成功,在網(wǎng)上查了很多方法,以為是兩個項(xiàng)目中jar包出現(xiàn)沖突,也按照網(wǎng)上的方法把兩個項(xiàng)目中相同的jar包找出來放在了tomcat的lib目錄下。結(jié)果還是不管用,只能啟動一個,另外一個被中斷。 最后為了測試,我把2個項(xiàng)目都放在eclipse下同時(shí)部署2個項(xiàng)目并啟動tomcat,終于報(bào)錯啦,而這個錯誤就是解決問題的關(guān)鍵 錯誤如下:
java.lang.IllegalStateException: Web app root system PRoperty already set to different value
webAppRootKey是在java web項(xiàng)目的web.xml配置文件中表示項(xiàng)目的唯一標(biāo)示,在Eclipse調(diào)試Web項(xiàng)目時(shí),項(xiàng)目的路徑是一個臨時(shí)路徑,不在真正的路徑下,可以通過log4j日志的方式打印出屬性值,來看看臨時(shí)項(xiàng)目路徑在哪里,可以用System.getProperty(“web.sample.root”);如果web.xm 內(nèi)沒有設(shè)置webAppRootKey項(xiàng),是為默認(rèn)設(shè)置,那么webAppRootKey就是缺省的”webapp.root”。
由于我的兩個項(xiàng)目都沒有設(shè)置這個webAppRootKey值,所以兩個webRootKey都是默認(rèn)缺省值。發(fā)生錯誤
解決辦法:在其中一個項(xiàng)目中的web.xml文件中的log4jlitener下面添加如下解決辦法:
<listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <context-param> <param-name>webAppRootKey</param-name> <param-value>app.root</param-value> </context-param> <context-param>原文地址:http://www.kankanews.com/ICkengine/archives/23299.shtml
新聞熱點(diǎn)
疑難解答
圖片精選