Я пытаюсь настроить два отдельных источника данных MariaDB в своем приложении Spring Boot. Приложение работает нормально, если настроено с одним источником данных, но не запускается, когда я добавляю второй.
Вот соответствующая конфигурация:
application.yml:
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. Оба источника данных работают независимо, если они настроены как единственный источник данных.
Я пытаюсь настроить два отдельных источника данных MariaDB в своем приложении Spring Boot. Приложение работает нормально, если настроено с одним источником данных, но не запускается, когда я добавляю второй. Вот соответствующая конфигурация: application.yml: [code]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>
< /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); } } [/code] Когда я запускаю приложение с такой настройкой, оно не запускается со следующим сообщением об ошибке: [code]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]
Я проверил правильность URL-адресов базы данных, имен пользователей и паролей в файле application.yml. Оба источника данных работают независимо, если они настроены как единственный источник данных.