【发布时间】:2011-04-03 17:29:12
【问题描述】:
当我在控制台上运行演示 JSF 应用程序时出现以下错误
[SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:JSFTut' did not find a matching property.
【问题讨论】:
当我在控制台上运行演示 JSF 应用程序时出现以下错误
[SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:JSFTut' did not find a matching property.
【问题讨论】:
这不是错误。这是一个警告。差异是相当大的。这个特定的警告基本上意味着 Tomcat 的 server.xml 中的 <Context> 元素包含未知属性 source,并且 Tomcat 不知道如何处理该属性,因此将忽略它。
Eclipse WTP 将自定义属性source 添加到Tomcat 的server.xml 中与项目相关的<Context> 元素,该元素标识上下文的来源(工作空间中部署到特定服务器的实际项目)。这样 Eclipse 可以将部署的 web 应用程序与工作区中的项目相关联。从 Tomcat 版本 6.0.16 开始,server.xml 中任何未指定的 XML 标记和属性都会在 Tomcat 启动期间产生警告,即使 server.xml 存在 no DTD nor XSD。
忽略它。你的网络项目很好。它应该运行良好。此问题与 JSF 完全无关。
【讨论】:
log4j.logger.org.apache.tomcat.util.digester.Digester = ERROR
从服务器视图中从服务器中删除项目。然后在同一台服务器下运行项目。
问题在于@BalusC 告诉在 Eclipse 中配置的 tomcat 的 server.xml 损坏。所以当你执行上述过程时 server.xml 将被重新创建。
【讨论】:
我想我会在 Tomcat 7.x 中添加,<Context> 不在 server.xml 中,而是在 context.xml 中。删除和重新添加项目似乎对我的类似问题没有帮助,这是一个 web.xml 问题,我通过检查 context.xml 发现了这个问题,该行在 <Context> 部分中有这一行:
<WatchedResource>WEB-INF/web.xml</WatchedResource>
WARNING: Setting property 'source' to 'org.eclipse.jst.jee.server:appname' did not find a matching property 中的解决方案让我更接近我的答案,因为将发布更改为单独的 XML 确实为我解决了上面报告的错误,但不幸的是它产生了第二个错误,我仍在调查中。
WARNING: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:myproject' did not find a matching property.
【讨论】:
关于设置 logging.properties 值
org.apache.tomcat.util.digester.Digester.level = SEVERE
...如果您在 Eclipse 中运行嵌入式 tomcat 服务器,则默认使用的 logging.properties 文件是 JDK 默认的 %JAVA_HOME%/jre/lib/logging.properties
如果您想使用不同的 logging.properties 文件(例如,在 tomcat 服务器的 conf 目录中),则需要通过 java.util.logging.config.file 系统属性进行设置。例如要使用文件 c:\java\apache-tomcat-7.0.54\conf\eclipse-logging.properties 中定义的日志记录属性,请将其添加到 VM 参数列表中:
-Djava.util.logging.config.file="c:\java\apache-tomcat-7.0.54\conf\eclipse-logging.properties"
(双击服务器图标,点击“打开启动配置”,选择“参数”选项卡,然后在“虚拟机参数”文本框中输入)
您可能还会发现添加 VM 参数很有用
-Djava.util.logging.SimpleFormatter.format="%1$tc %4$s %3$s %5$s%n"
同样,它将在输出中包含源记录器名称,这样可以更容易地确定在 logging.properties 文件中限制哪个记录器(根据http://docs.oracle.com/javase/7/docs/api/java/util/logging/SimpleFormatter.html)
【讨论】:
我也遇到过类似的问题。解决此问题的步骤。
希望这对你也有用。
【讨论】:
请检查是否有任何缺少特别jar的jar文件可能已被视为本地,因此放入lib文件夹然后创建WAR文件
【讨论】:
由于this commit,这在Tomcat的开发版本中是固定的。现在在发布的版本 9.0.13、8.5.35 和 7.0.92 中。
来自9.0.13changelog:
忽略 StandardContext 提供的 Context 元素上名为 source 的属性。这是为了抑制由 Eclipse 提供的 Eclipse / Tomcat 集成生成的警告。基于 mdfst13 的补丁。 (市场)
此更改的效果是在 server.xml 或 context.xml 中的 Context 元素上声明 source 属性时抑制警告。由于这些是 Eclipse 放置此类属性的两个地方,因此可以解决此特定问题。
TL;DR:在其分支中更新到最新的 Tomcat 版本,例如9.0.13 或更高版本。
【讨论】:
这是这个警告的简单解决方案:
您可以更改 eclipse tomcat 服务器配置。打开 服务器视图,双击您的服务器以打开服务器配置。 有一个服务器选项选项卡。在该选项卡内单击复选框以 激活“将模块内容发布到单独的 XML 文件”。
最后,重启你的服务器,消息一定会消失。
【讨论】: