兩個常見tomcat警告分析

1.web

  • 警告描述:
[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 文件中的 <Context> 元素有一個未知的屬性 source ,這個 source 實際上是 Eclipse WTP 爲 <Context> 元素增長的惟一標識,以便 Eclipse 可以將其與具體部署的項目相關聯。這個屬性是 Eclipse 自定義的, TOMCAT 不認識因而給出警告。app

  • 處理方式:

對於該警告,個人建議是忽略它,由於沒有好的辦法消除它。eclipse

  • 解釋:

首先,每次在 Eclipse 中重啓 TOMCAT , Eclipse 都會重寫 <Context> 元素,因此手動刪除 source 屬性毫無心義。webapp

其次,網上提供的解決方案雖然消除了這一警告,卻獲得相似的另外一警告,因此也是毫無心義。ide

網上不少人提供的處理辦法是:在 Eclipse Server 配置界面,勾選」Publish module contexts to separate XML files」,但他們並不清楚這個選項的意義,code

這個選項實際上是將 TOMCAT_HOME/conf/server.xml 文件中的 <Context> 元素單獨拎出來做爲一個 XML 文件,即在 TOMCAT_HOME/conf/Catalina/localhost 目錄下單獨生成 xxx.xml 文件,以替代 TOMCAT_HOME/conf/server.xml 文件中的 <Context> 元素。server

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

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

所以對於想消除警告來講,這一作法毫無心義。blog

2.ip

  • 警告描述:
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 文件中的 <Context> 元素,其中的 docBase 屬性是相對路徑,沒有問題,

可是當勾選」Publish module contexts to separate XML files」以後,生成了單獨的配置文件 xxx.xml ,裏面的 <Context> 元素的 docBase 屬性用了絕對路徑,

這時,TOMCAT 經過 xxx.xml 文件的 <Context> 元素的 docBase 屬性找到了該項目,以後在掃描 TOMCAT_HOME/webapps 目錄時有找到了該項目,

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

  • 處理方式:

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

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

相關文章
相關標籤/搜索