警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:fhcq-oa' did not find a matching property.
当你在使用Eclipse运行web项目时,你可能会看到控制台出现:
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:fhcq-oa' did not find a matching property.
这样的字样,说的是server.xml的Service标签里的Engine标签里的Host标签里的Context标签配置了一个'source'属性,属性值是'org.eclipse.jst.jee.server:fhcq-oa'.
但问题是Context标签是不支持source这个属性的,所以跳出了警告,所以大家也发现的是,尽管有警告,但是大部分人的程序是依然可以运行没有问题的,但少部分人的可能不能够运行。
也许你已经在网上查到很多像这样的问题,而且也给出了解决办法,但是你照着解决的方法去做了,警告依然存在!那现在就请你跟着我的步骤来做,这里有你可能忽视的几个细节:
在开始之前,我们先来说一下网上别人所说的步骤:
1、双击Servers里的Tomcat v8.5 Server at localhost
(图1)
2、然后跳出了如下的界面,在Server Options选项卡里有个Publish module contexts to separate XML files的选项,到这里我们也一样把框勾上,把框勾上以后记得保存。不过问题不是这样就一定解决了,如果这个步骤你照做了,警告依然存在,那就请跟着我继续往下看。
(图2)
3、你可能发现,下图中标记处的设置可能与你的不同,你默认的选项应该是Use workspace metadata,只不过是笔者我改为了Tomcat 的安装路径罢了,因为Use workspace的路径文件夹不方便后面的讲解中要找的文件,所以笔者使用了Tomcat 安装目录来操作,而Deploy path:你如果没有改过的话,是叫做wtpwebapps,因为在Tomcat 服务器中的项目默认是存放在其安装目录下的 webapps 里,为了与之相一致,将 Deploy path 的默认值 wtpwebapps 修改为了 webapps。
(图3)
准备工作差不多了,那么现在重点来了!为什么好多人做了1、2步操作后问题就解决了,而你自己的却问题依然存在?原因是,在做1、2 步操作之前,你可能已经修改过Servers配置并运行过程序,而运行以后程序就会在Tomcat 下产生一个backup文件夹。里面的文件也即是从Tomcat 目录里conf文件夹下配置文件的备份。
(图4)
4、接下来直接说操作好了,删除图4中的backup文件夹。因为笔者使用的是Tomcat 安装目录,所以在目录下就可以轻松发现。但如果你设置的是图3中 Use workspace metadata 这个选项的话,你就在\workspace\.metadata\.plugins\org.eclipse.wst.server.core 路径下可以看到里面有很多的文件。Eclipse就把项目发布到了这里,里面的目录结构和Tomcat 安装目录里面的差不多,总之把\workspace\.metadata\.plugins\org.eclipse.wst.server.core 里面的文件全部删除。
5、在Tomcat 安装目录下根据文件路径conf\Catalina\localhost\,把localhost文件夹里面的文件全部删除。
6、此处告诉大家,3、4、5步骤纯属是Eclipse发布的一个细节,删除上面的文件其实不用那么麻烦:
在Servers下Tomcat v8.5 Server at localhost里,首先右键—>Remove(移除里面已经添加的所有工程),然后再右键—>Clean Module Work Directory…(清理模块工作目录里的文件),最后重新运行你的程序就可以了。
注意:如果有人想和我一样在第3步的图3中 Server Locations 里修改项目发布目录的话,只要发布过一次项目,你会发现 Server Locations 里面的选项是灰色的,不可更改。此时就需要照着第6步里面的流程,移除项目—>清空文件,然后你就惊奇的发现,Server Locations 下的配置可以修改了。