警告:[SetPropertiesRule]Setting property 'source' to xxx did not find a matching property.的消除

启动JSP页面时报错,全文如下:

九月 25, 2016 7:47:39 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:(工程名)' did not find a matching property.

报错原因:

默认情况下,Tomcat在server.xml的Context节点不支持名称为source的属性,就出现该警告。

解决办法:

在服务器配置页选择在servers视图下双击当前服务器,弹出配置页面:


Servers设置页面截图

相关解释:(出处待定)

Tomcat Publishing Options
Two new options which affect publishing are now available in the Server Options section of the Tomcat server editor. The Tomcat server must be 5.0.x or later for these options to be enabled. The Serve modules without publishing option does what it says. Web content will be served directly from the "WebContent" folder of the Dynamic Web Project. A customized context is used to make the project's dependencies available in the Web application's classloader. 
The Publish module contexts to separate XML files option will publish contexts using the preferred method of separate XML files under the "conf/Catalina/localhost" directory, rather than keeping them in the "server.xml" file. A couple of improvements for this option are noted in Bugs 180931 and 180936.

字面意思大致为:

Tomcat发布选项

  Tomcat服务器编辑器中的【服务器选项】部分目前新增了两个影响发布环节的选项。启用这两个选项,要求Tomcat服务器版本在5.0.x以上。【The Serve modules without publishing】选项实现的功能如其名称所述,网页内容将直接从动态网页项目(Dynamic Web Project)的“WebContent”(网页内容)文件夹中获取。为确保Web应用程序的类加载器在工程项目的依赖项中可用,需要用到一个自定义的开发环境(context)。

  【The Publish module contexts to separate XML files】选项将优先采用分离“conf/Catalina/localhost”目录下XML文件的方式发布开发环境,不会令其保存在server.xml文件中。关于该选项的一些改进措施详见Bugs 180931与180936。

  原文不是很懂,查网上的说法,大概意思是勾选第一个选项后,让tomcat直接使用WebContent下的内容,无需发布到设置前的路径下:<workspace>\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps。其他改动:①会将tmp0\wtpwebapps目录下相关的resources删除;②会修改Servers/Tomcat v8.0 Server at localhost-config/servers.xml中的serveModulesWithoutPublish属性,值被设置为true。

  至于勾选第二项,也就是本文需要的那一项,会把带有source属性的<Context.../>节点从server.xml中单独分离出来,这样就消除了警告。相关的改动:①上述servers.xml中的saveSeparateContextFiles属性将被设置为true;②tmp0/conf/server.xml中的报错节点<Context>将被移动至tmp0/conf/Catalina/localhost/appName.xml中。


参考资料:

http://blog.youkuaiyun.com/anglebeat/article/details/23995967

https://my.oschina.net/uniquejava/blog/80945

### 解决 Eclipse 中设置 `source` 属性时出现的匹配属性未找到问题 此问题的核心在于 Tomcat 的 `context.xml` 或者 `server.xml` 文件中,`<Context>` 标签被额外添加了一个名为 `source` 的属性[^3]。然而,Tomcat 官方文档并未定义 `<Context>` 支持该属性,因此会触发警告信息。 #### 原因分析 当在 Eclipse 中运行 Web 项目时,IDE 自动生成了一些配置文件并将其注入到 Tomcat 的部署环境中。这些自动生成的内容可能包含了不必要的 `source="org.eclipse.jst.jee.server:ProjectName"` 属性。由于 Tomcat 并不认识这个属性,它会在启动过程中抛出警告消息: ``` WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:ProjectName' did not find a matching property. ``` 虽然这种警告通常不会影响项目的正常运行,但在某些情况下可能会干扰调试过程或者引发其他潜在问题[^1]。 --- #### 解决方案 以下是几种常见的解决方案供参考: ##### 方法一:修改 `.metadata\.plugins\org.eclipse.wst.server.core\tmpX\conf\Catalina\localhost` 下的 XML 文件 进入 Eclipse 工作区目录下的隐藏文件夹路径(具体位置取决于操作系统),定位至上述子目录。打开对应于当前项目的 XML 文件,删除其中的 `source` 属性即可消除警告。 例如: ```xml <!-- 修改前 --> <Context path="/project-name" reloadable="true" source="org.eclipse.jst.jee.server:ProjectName"/> <!-- 修改后 --> <Context path="/project-name" reloadable="true"/> ``` 注意每次重新发布项目时,Eclipse 可能再次写入默认值,需手动清理多余字段。 --- ##### 方法二:禁用自动更新功能 通过调整服务器设置防止 IDE 自动覆盖原有配置项。操作如下: 1. 打开 **Servers View**; 2. 双击目标 Tomcat Server 实例编辑其配置页面; 3. 寻找选项卡 “Publishing”,勾选“Never publish automatically”。 这样可以减少频繁同步带来的副作用,同时保留开发者对底层资源的手动控制权[^2]。 --- ##### 方法三:升级工具版本 如果条件允许的话,考虑更换更高版本的开发环境组合(如最新版 Eclipse 和 Apache Tomcat)。较新的发行包往往修复了许多已知缺陷,并改进了兼容性表现[^4]。 --- ### 总结 综上所述,针对此类现象最直接有效的处理方式就是移除无意义参数声明;与此同时也要关注软件生态链的整体优化趋势,适时采纳更先进的技术栈组件以提升工作效率与稳定性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安冬的码畜日常

您的鼓励是我持续优质内容的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值