1. 程式人生 > >兩個常見tomcat警告分析

兩個常見tomcat警告分析

1.

警告描述:

[SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:XXX’ did not find a matching property.

原因分析:

這個警告是說 TOMCAT_HOME/conf/server.xml 檔案中的 元素有一個未知的屬性source ,這個source 其實是Eclipse WTP 為 元素增加的唯一標識,以便Eclipse 能夠將其與具體部署的專案相關聯。這個屬性是Eclipse 自定義的, TOMCAT 不認識於是給出警告。

處理方式:

對於該警告,我的建議是忽略它,因為沒有好的辦法消除它。

解釋:

首先,每次在Eclipse 中重啟TOMCAT ,Eclipse 都會重寫 元素,所以手動刪除source屬性毫無意義。

其次,網上提供的解決方案雖然消除了這一警告,卻得到類似的另一警告,所以也是毫無意義。

網上很多人提供的處理辦法是:在EclipseServer配置介面,勾選”Publish module contexts to separate XML files”,但他們並不清楚這個選項的意義,

這個選項其實是將TOMCAT_HOME/conf/server.xml 檔案中的 元素單獨拎出來作為一個 XML 檔案,即在TOMCAT_HOME/conf/Catalina/localhost 目錄下單獨生成 xxx.xml 檔案,以替代TOMCAT_HOME/conf/server.xml 檔案中的 元素。

這樣做雖然沒有以上警告,卻帶來了另一個性質一樣的警告:

[SetContextPropertiesRule]{Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:xxx’ did not find a matching property.

因此對於想消除警告來說,這一做法毫無意義。

2.

警告描述:

A docBase TOMCAT_HOME/webapps/xxx inside the host appBase has been specified, and will be ignored

原因分析:

這一警告通常都是在處理第一個警告時,按網上的方法勾選了”Publish module contexts to separate XML files”之後,

可能很多人像我一樣習慣於將專案部署到TOMCAT_HOME/webapps 目錄下,這時沒有勾選”Publish module contexts to separate XML files”,

則會生成TOMCAT_HOME/conf/server.xml 檔案中的 元素,其中的docBase 屬性是相對路徑,沒有問題,

但是當勾選”Publish module contexts to separate XML files”之後,生成了單獨的配置檔案 xxx.xml ,裡面的 元素的docBase 屬性用了絕對路徑,

這時,TOMCAT 通過xxx.xml 檔案的 元素的docBase 屬性找到了該專案,之後在掃描TOMCAT_HOME/webapps 目錄時有找到了該專案,

此時就是重複了,所以TOMCAT 給出警告說第二次找到的專案已經有了會被忽略。

處理方式:

不要將專案部署到TOMCAT_HOME/webapps 目錄,或者不要勾選”Publish module contexts to separate XML files”

建議:將專案部署到TOMCAT_HOME/wtpwebapps 目錄