мы сейчас используем весеннюю загрузочную версию 1.5.13.RELEASE, весеннюю облачную версию - Edgware.SR3, а весеннюю облачную конфигурационную версию - 1.4.3.RELEASE。
И мы используемeureka 1.7.2 как наш центр реестра, а config-сервер и config-клиент - это eureka-client.
, когда мы думаем, что, поскольку весенний облачный конфиг является сервером конфигурации, и он должен бытьуправлять любым типом конфигов нашего приложения.поэтому мы помещаем logback.xml в github и ссылаемся на spring cloud doc , мы можем получить logback.xml в config-клиенте, установив
logging.config=${spring.cloud.config.uri}/*/default/master/logback.xml.
однакоТак как config-сервер и config-client являются клиентом eureka-сервера, он должен использовать имя службы для связи.и мы устанавливаем config int в файле bootstrap.properties клиента config следующим образом:
spring.cloud.config.name=logback
spring.cloud.config.profile=default
spring.cloud.config.label=master
spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.service-id=config-server-name
eureka.client.serviceUrl.defaultZone=http://admin:admin@localhost:7001/eureka/
, но когда мы запускаем клиент config, на сервере config возникает ошибка, которая:
java.lang.IllegalStateException: Failed to load property source from location 'file:/D:/others/test/configBack/qing-cloud-m1-config/logback-spring.xml'
Caused by: java.util.InvalidPropertiesFormatException: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 16; 文档根元素 "configuration" 必须匹配 DOCTYPE 根 "null"。
at sun.util.xml.PlatformXmlPropertiesProvider.load(PlatformXmlPropertiesProvider.java:80)
at java.util.Properties$XmlSupport.load(Properties.java:1201)
at java.util.Properties.loadFromXML(Properties.java:881)
at org.springframework.core.io.support.PropertiesLoaderUtils.fillProperties(PropertiesLoaderUtils.java:136)
at org.springframework.core.io.support.PropertiesLoaderUtils.loadProperties(PropertiesLoaderUtils.java:121)
at org.springframework.boot.env.PropertiesPropertySourceLoader.load(PropertiesPropertySourceLoader.java:44)
at org.springframework.boot.env.PropertySourcesLoader.load(PropertySourcesLoader.java:128)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.doLoadIntoGroup(ConfigFileApplicationListener.java:490)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadIntoGroup(ConfigFileApplicationListener.java:473)
... 87 common frames omitted
так, как я могу решить эту проблему, и конфигурация весеннего облака не может хранить xml или файл другого типа?если это так, то, возможно, существует множество ограничений
Я прочитал исходный код и обнаружил, что он может загружать XML-файл, но почему возникают такие проблемы
public static void fillProperties(Properties props, Resource resource) throws IOException {
InputStream is = resource.getInputStream();
try {
String filename = resource.getFilename();
if (filename != null && filename.endsWith(XML_FILE_EXTENSION)) {
props.loadFromXML(is);
}
else {
props.load(is);
}
}
finally {
is.close();
}
}
logback.xml нижеи это будет выполнено в автономном весеннем загрузочном проекте `` `
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${ENCODER_PATTERN}</pattern>
</encoder>
</appender>
<appender name="FILE-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>../../log/${LOG-NAME}.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>${ENCODER_PATTERN}</pattern>
</encoder>
</appender>
<logger name="cn.jz" additivity="false" level="DEBUG">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE-APPENDER"/>
</logger>
<root level="DEBUG">
<appender-ref ref="CONSOLE" />
</root>
` ``