我有以下logback.xml配置:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logFile.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- keep 30 days' worth of history -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%-4relative [%thread] %highlight(%-5level) %cyan(%logger{35}) - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
如果我在eclipse(juno)中编辑配置文件,我会收到以下错误:
11:02:54,114 INFO [main] Main - javax.xml.transform.TransformerFactory=null
11:02:54,115 INFO [main] Main - java.endorsed.dirs=C:\Program Files\Java\jre7\lib\endorsed
11:02:54,117 INFO [main] Main - launchFile: C:\Users\roberth\Programming_Projects\eclipse\.metadata\.plugins\org.eclipse.wst.xsl.jaxp.launching\launch\launch.xml
11:02:54,145 FATAL [main] Main - No embedded stylesheet instruction for file: file:/C:/Users/roberth/Programming_Projects/eclipse/javaport/src/logback.xml
org.eclipse.wst.xsl.jaxp.debug.invoker.TransformationException: No embedded stylesheet instruction for file: file:/C:/Users/roberth/Programming_Projects/eclipse/javaport/src/logback.xml
at org.eclipse.wst.xsl.jaxp.debug.invoker.internal.JAXPSAXProcessorInvoker.transform(JAXPSAXProcessorInvoker.java:225)
at org.eclipse.wst.xsl.jaxp.debug.invoker.internal.JAXPSAXProcessorInvoker.transform(JAXPSAXProcessorInvoker.java:186)
at org.eclipse.wst.xsl.jaxp.debug.invoker.internal.Main.main(Main.java:73)
Caused by: org.eclipse.wst.xsl.jaxp.debug.invoker.TransformationException: No embedded stylesheet instruction for file: file:/C:/Users/roberth/Programming_Projects/eclipse/javaport/src/logback.xml
at org.eclipse.wst.xsl.jaxp.debug.invoker.internal.JAXPSAXProcessorInvoker.transform(JAXPSAXProcessorInvoker.java:214)
... 2 more
如果我删除并重新创建配置,有时它会工作,有时则不然。
如果我在notepad ++或其他文本编辑器中编辑文件,它可以正常工作。
这是一个日食问题还是我错过了什么?
答案 0 :(得分:40)
这是一个Eclipse bug,我也注意到了它。确保你正在运行正确的Eclipse Runtime配置(即如果你点击顶部的绿色“Play”按钮,认为它将重新运行你运行的最后一个(有效)运行时,重新运行检查(通过单击它旁边的向下箭头)以确保没有创建新的运行时。)
我已经注意到了这一点,即使我创建了一个完全有效的运行时指向Java主类和所有内容,我运行了几次并且一切都很好,过了一会儿,如果我选择一个xml文件(因为我想编辑它,例如)然后在我单击我的运行按钮时选择它,Eclipse将为该xml文件创建一个新的XSLT Transformation运行时并尝试运行它,失败并报告您的异常。 解决方案是擦除运行时间,确保没有选择xml文件,并重新运行正确的运行时。
答案 1 :(得分:3)
最新的Eclipse Juno版本遇到了同样的问题。首先,它似乎是Eclipse内部的一个错误。在关闭Eclipse内部的活动窗口(使用spring-configuration.xml openend)之后,我能够启动spring容器而不会出现此错误。所以这取决于运行配置。请注意,您要启动“主”类并且不要尝试“运行”xml-configuation。这解决了我的问题(Eclipse自动选择运行的xml)。