两个常见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 目录

相关文章
相关标签/搜索