Spring logback Document根元素必须与DOCTYPE根匹配

时间:2017-12-21 11:05:23

标签: spring spring-mvc web logback slf4j

我正在尝试使用Web应用程序进行回溯,但是我在启动时显示以下错误:

ERROR : Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanInitializationException: Could not load properties; 
nested exception is java.util.InvalidPropertiesFormatException: 
org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 52; 
Document root element "configuration", must match DOCTYPE root "null".

这是一个弹簧应用程序,这是配置的一些部分。

在我的应用程序上下文中,我定义了这个:

<bean id="logbackConfigFile" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="java:comp/env/config/logbackConfigFile"/>
</bean>

<bean id="propertiesConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            ...
            <ref bean="logbackConfigFile"/>
        </list>
    </property>
</bean>

链接的配置描述符如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<Context unpackWAR  = "false">
    ...
    <Environment name="config/logbackConfigFile" type="java.lang.String"
     value="file:/C:\somedirectory\logback.xml" />
</Context>

logback.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">

    <property name="LOG_HOME" value=".\\logs"/>

    <appender name="someRollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/msg.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>5MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>15</maxHistory>
        </rollingPolicy>

        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d %-5level %-15logger{15} - %msg - %class{1}.%method %line%n</pattern>
        </encoder>
    </appender>

    ...

    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>OFF</level>
        </filter>

        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d %-5level %-15logger{15} - %msg - %class{1}.%method %line%n</pattern>
        </encoder>
    </appender>

   ...

    <logger name="something" level="info">
        <appender-ref ref="someRollingFileAppender"/>
        <appender-ref ref="aggregatedRollingFileAppender"/>
    </logger>

    <root level="off">
        <appender-ref ref="stdout"/>
    </root>
</configuration>

一切似乎都很好,我已经在其他网络应用程序中使用了这样的配置而没有任何问题,因此我根本不了解我的问题是什么(我明白它想要一个dtd,但我不明白为什么)

有人有意帮助我吗?

谢谢,

的Seb

0 个答案:

没有答案