两个常见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 文件中的 <Context> 元素有一个未知的属性 source ,这个 source 其实是 Eclipse WTP 为 <Context> 元素增加的唯一标识,以便 Eclipse 能够将其与具体部署的项目相关联。这个属性是 Eclipse 自定义的, TOMCAT 不认识于是给出警告。

  • 处理方式:

对于该警告,我的建议是忽略它,因为没有好的办法消除它。

  • 解释:

首先,每次在 Eclipse 中重启 TOMCAT , Eclipse 都会重写 <Context> 元素,所以手动删除 source 属性毫无意义。

其次,网上提供的解决方案虽然消除了这一警告,却得到类似的另一警告,所以也是毫无意义。

网上很多人提供的处理办法是:在 Eclipse Server 配置界面,勾选”Publish module contexts to separate XML files”,但他们并不清楚这个选项的意义,

这个选项其实是将 TOMCAT_HOME/conf/server.xml 文件中的 <Context> 元素单独拎出来作为一个 XML 文件,即在 TOMCAT_HOME/conf/Catalina/localhost 目录下单独生成 xxx.xml 文件,以替代 TOMCAT_HOME/conf/server.xml 文件中的 <Context> 元素。

这样做虽然没有以上警告,却带来了另一个性质一样的警告:

[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 文件中的 <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 目录

posted on 2016-10-15 16:40  guodefu909  阅读(874)  评论(0编辑  收藏  举报

导航