没有用于文件的嵌入式样式表指令:使用logback的错误

时间:2012-11-15 16:22:44

标签: eclipse logback

我有以下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 ++或其他文本编辑器中编辑文件,它可以正常工作。

这是一个日食问题还是我错过了什么?

2 个答案:

答案 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)。