17

我有以下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++ 或其他文本编辑器中编辑文件,它工作正常。这是日食问题还是我错过了什么?

4

2 回答 2

46

这是一个 Eclipse 错误,我也注意到了。确保您正在运行正确的 Eclipse 运行时配置(即,如果您单击顶部的绿色小“播放”按钮,认为它会重新运行您运行的最后一个(有效)运行时,重新运行检查(通过单击它旁边的向下箭头)以确保没有创建新的运行时)。

我注意到的是,即使我创建了一个指向 Java 主类和所有内容的完全有效的运行时,我运行了几次并且一切都很好,过了一会儿,如果我选择一个 xml 文件(因为我例如想要编辑它)然后在我单击运行按钮时将其保持选中状态,Eclipse 将为该 xml 文件创建一个新的 XSLT 转换运行时并尝试运行它,但由于您报告的异常而失败。解决方案是删除该运行时间,确保我没有选择 xml 文件,然后重新运行正确的运行时间。

于 2012-11-16T08:47:00.270 回答
3

我对最新的 Eclipse Juno 版本有同样的问题。首先,它似乎是 Eclipse 中的一个错误。关闭 Eclipse 内的活动窗口(使用 spring-configuration.xml openend)后,我能够启动 spring 容器而不会出现此错误。所以这取决于运行配置。注意启动“主”类,不要尝试“运行”xml 配置。这为我解决了这个问题(Eclipse 自动选择了要运行的 xml)。

于 2013-07-07T20:27:14.937 回答