两个常见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) 编辑 收藏 举报