Невозможно настроить несколько источников данных в Spring Boot: приложение не запускаетсяJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Невозможно настроить несколько источников данных в Spring Boot: приложение не запускается

Сообщение Anonymous »

Я пытаюсь настроить два отдельных источника данных MariaDB в своем приложении Spring Boot. Приложение работает нормально, если настроено с одним источником данных, но не запускается, когда я добавляю второй.
Вот соответствующая конфигурация:
application.yml:

Код: Выделить всё

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]+)+











< /code>
mariadbconfig: < /p>
@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)
Я проверил правильность URL-адресов базы данных, имен пользователей и паролей в файле application.yml. Оба источника данных работают независимо, если они настроены как единственный источник данных.

Подробнее здесь: https://stackoverflow.com/questions/793 ... fails-to-s
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»