我正在尝试使用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