Вот соответствующая конфигурация: < /p>
Application.yml: < /p>
Код: Выделить всё
spring:
datasource:
primary:
hikari:
driver-class-name: org.mariadb.jdbc.Driver
jdbc-url: jdbc:mariadb://${spring.datasource.primary.host}:${spring.datasource.primary.port}/${spring.datasource.primary.name}?serverTimezone=UTC&useLegacyDatetimeCode=false
username: admin
password: admin
analytic:
hikari:
driver-class-name: org.mariadb.jdbc.Driver
jdbc-url: jdbc:mariadb://${spring.datasource.analytic.host}:${spring.datasource.analytic.port}/${spring.datasource.analytic.name}?serverTimezone=UTC&useLegacyDatetimeCode=false
username: admin
password: admin
< /code>
Конфигурация журнала: < /p>
${primaryDriverClassName}
${primaryDbUrl}
${primaryUsername}
${primaryPassword}
${analyticDriverClassName}
${analyticDbUrl}
${analyticUsername}
${analyticPassword}
%d{yyyy-MM-dd'T'HH:mm:ss.SSS} %highlight(%-5level) [%-20.20thread] %cyan(%-40.40logger{40}) [%file:%line] - %X{LoggerScope}:%X{username}:%X{sessionId} - %msg%n
${LOKI_URL}
app=lm
host=${HOSTNAME}
traceId=%X{traceId:-none}
user=%X{username:-none}
sessionId=%X{sessionId:-none}
uri=%X{uri:-none}
method=%X{method:-none}
file=%file:%line
ex_time=%r
regex:(\n|//[^\n]+)+
Код: Выделить всё
@Configuration
public class MariaDbConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource.primary.hikari")
public HikariConfig primaryHikariConfig() {
return new HikariConfig();
}
@Bean(name = "primaryDataSource")
@Primary
public DataSource primaryDataSource() {
return new HikariDataSource(primaryHikariConfig());
}
@Bean(name = "primaryJdbcTemplate")
@Primary
public JdbcTemplate primaryJdbcTemplate(@Qualifier("primaryDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean
@ConfigurationProperties(prefix = "spring.datasource.analytic.hikari")
public HikariConfig analyticHikariConfig() {
return new HikariConfig();
}
@Bean(name = "analyticDataSource")
public DataSource analyticDataSource() {
return new HikariDataSource(analyticHikariConfig());
}
@Bean(name = "analyticJdbcTemplate")
public JdbcTemplate analyticJdbcTemplate(@Qualifier("analyticDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
Код: Выделить всё
Logging system failed to initialize using configuration from 'null'
java.lang.IllegalStateException: Logback configuration error detected:
ERROR in ch.qos.logback.core.joran.spi.Interpreter@24:16 - RuntimeException in Action for tag [appender] java.lang.IllegalStateException: DBAppender cannot function if the JDBC driver does not support getGeneratedKeys method *and* without a specific SQL dialect
ERROR in ch.qos.logback.core.joran.spi.Interpreter@34:16 - RuntimeException in Action for tag [appender] java.lang.IllegalStateException: DBAppender cannot function if the JDBC driver does not support getGeneratedKeys method *and* without a specific SQL dialect
at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:179)
at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:80)
at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:60)
at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:132)
at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:329)
at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:298)
at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:246)
at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:223)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131)
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:85)
at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:66)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:120)
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:114)
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:65)
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:343)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:301)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292)
at ru.lm.LocalMonitoringApplication.main(LocalMonitoringApplication.java:36)
< /code>
Gradle: < /p>
dependencies {
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
annotationProcessor "org.mapstruct:mapstruct-processor:${mapstructVersion}"
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
annotationProcessor 'org.projectlombok:lombok'
runtimeOnly 'io.micrometer:micrometer-registry-prometheus'
implementation "org.springframework.boot:spring-boot-starter-cache"
implementation "org.springframework.boot:spring-boot-starter-mail"
implementation "org.springframework.boot:spring-boot-starter-web"
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-amqp'
implementation 'org.springframework.boot:spring-boot-starter-undertow'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-webflux'
implementation 'org.springframework.boot:spring-boot-starter-websocket'
implementation('org.springframework.boot:spring-boot-starter-data-jpa') {
exclude group: 'org.apache.tomcat', module: 'tomcat-jdbc'
}
implementation "com.github.oshi:oshi-core:${oshiVersion}"
implementation "com.github.oshi:oshi-parent:${oshiVersion}"
implementation "com.opencsv:opencsv:${opencsvVersion}"
implementation "commons-io:commons-io:${apacheCommonIO}"
implementation "javax.cache:cache-api:1.1.1"
implementation "org.apache.commons:commons-lang3:${apacheCommonsLangVersion}"
implementation "org.apache.tomcat:tomcat-jdbc:${tomcatJdbc}"
implementation "org.ehcache:ehcache:3.10.8"
implementation "org.imgscalr:imgscalr-lib:${imgscalrVersion}"
implementation "org.mapstruct:mapstruct:${mapstructVersion}"
implementation "org.springdoc:springdoc-openapi-ui:${springDocVersion}"
implementation "com.clickhouse:clickhouse-jdbc:${clickhouseJdbcVersion}"
implementation 'org.lz4:lz4-java:1.8.0'
implementation "com.google.guava:guava:${guavaVersion}"
implementation 'io.micrometer:micrometer-registry-prometheus'
implementation 'net.sf.ehcache:ehcache:2.10.9.2'
implementation "org.flywaydb:flyway-core:${flywayVersion}"
implementation "org.flywaydb:flyway-mysql:${flywayVersion}"
implementation 'org.slf4j:slf4j-api'
implementation 'ch.qos.logback.db:logback-classic-db:1.2.11.1'
implementation 'com.github.loki4j:loki-logback-appender:1.5.2'
implementation "org.jxls:jxls-poi:${jxlsVersion}"
implementation 'com.github.seancfoley:ipaddress:5.4.0'
implementation "com.squareup.okio:okio:${okioVersion}"
implementation 'org.yaml:snakeyaml:2.0'
implementation 'io.hypersistence:hypersistence-utils-hibernate-52:3.2.0'
implementation 'org.hibernate:hibernate-jcache:5.6.15.Final'
implementation "software.amazon.awssdk:bom:${awsSdkVersion}"
implementation "software.amazon.awssdk:s3:${awsSdkVersion}"
implementation 'org.jetbrains.kotlin:kotlin-reflect'
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
implementation 'com.fasterxml.jackson.module:jackson-module-kotlin'
implementation 'org.liquibase:liquibase-core:4.9.1'
implementation 'com.mediarithmics:liquibase-clickhouse:0.7.2'
implementation "org.springframework.retry:spring-retry:${springRetryVersion}"
implementation 'com.ibm.icu:icu4j:72.1'
testImplementation project(':libraries:itx2-rest').sourceSets.test.output
testImplementation "org.jxls:jxls-poi:${jxlsVersion}"
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation "org.testcontainers:junit-jupiter:${testcontainersVersion}"
testImplementation "org.testcontainers:mariadb:${testcontainersVersion}"
testImplementation "org.testcontainers:clickhouse:${testcontainersVersion}"
testImplementation "org.testcontainers:rabbitmq:${testcontainersVersion}"
testImplementation "uk.co.jemos.podam:podam:${podamVersion}"
testImplementation 'org.instancio:instancio-junit:3.6.0'
testImplementation 'org.awaitility:awaitility:4.2.0'
// https://mvnrepository.com/artifact/com.jayway.jsonpath/json-path
// need only for MockedAnprController.getParametrizedMock()
implementation group: 'com.jayway.jsonpath', name: 'json-path', version: '2.6.0'
implementation group: 'org.json', name: 'json', version: '20190722'
}
I подтвердил, что URL -адреса базы данных, имена пользователей и пароли в файле Application.yml являются правильными. Оба источника данных работают независимо при настройке как единственный источник данных.
Подробнее здесь: https://stackoverflow.com/questions/793 ... fails-to-s
Мобильная версия