michkish commented on issue #29381:
URL:
https://github.com/apache/shardingsphere/issues/29381#issuecomment-1873605668
I had the same issue in Spring Boot 3.1.5, Sharding Jdbc 5.4.1
application.yml
```yaml
spring:
datasource:
driver-class-name: org.apache.shardingsphere.driver.ShardingSphereDriver
url: jdbc:shardingsphere:classpath:shardingsphere-dev.yaml
```
shardingsphere-dev.yaml
```yaml
mode:
type: Standalone
repository:
type: JDBC
dataSources:
ds_1:
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
driverClassName: com.mysql.jdbc.Driver
jdbcUrl:
jdbc:mysql://xxxx:3309/xxx?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
username: xxx
password: xxx
ds_2:
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
driverClassName: com.mysql.jdbc.Driver
jdbcUrl:
jdbc:mysql://xxx:3309/x?usxxeUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
username: xxx
password: xxx
rules:
- !READWRITE_SPLITTING
dataSources:
readwrite_ds:
write_data_source_name: ds_1
read_data_source_names: ds_2
loadBalancerName: random
loadBalancers:
random: RANDOM
props:
sql.show: true
```
spring start log shows:
org.yaml.snakeyaml.constructor.ConstructorException: Cannot create
property=rules for
JavaBean=org.apache.shardingsphere.driver.api.yaml.YamlJDBCConfiguration@40612056
in 'reader', line 1, column 1:
mode:
^
Cannot create property=dataSources for
JavaBean=org.apache.shardingsphere.readwritesplitting.yaml.config.YamlReadwriteSplittingRuleConfiguration@7af17d31
in 'reader', line 21, column 3:
- !READWRITE_SPLITTING
^
Cannot create property=write_data_source_name for
JavaBean=org.apache.shardingsphere.readwritesplitting.yaml.config.rule.YamlReadwriteSplittingDataSourceRuleConfiguration@7c8cea05
in 'reader', line 24, column 7:
write_data_source_name: ds_1
^
Unable to find property 'write_data_source_name' on class:
org.apache.shardingsphere.readwritesplitting.yaml.config.rule.YamlReadwriteSplittingDataSourceRuleConfiguration
in 'reader', line 24, column 31:
write_data_source_name: ds_1
^
in 'reader', line 23, column 5:
readwrite_ds:
^
in 'reader', line 21, column 1:
- !READWRITE_SPLITTING
^
at
org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:321)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:207)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:358)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:270)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:253)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java:207)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:191)
~[snakeyaml-1.33.jar:na]
at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:477)
~[snakeyaml-1.33.jar:na]
at org.yaml.snakeyaml.Yaml.loadAs(Yaml.java:470)
~[snakeyaml-1.33.jar:na]
at
org.apache.shardingsphere.infra.util.yaml.YamlEngine.unmarshal(YamlEngine.java:69)
~[shardingsphere-infra-util-5.4.1.jar:5.4.1]
at
org.apache.shardingsphere.driver.api.yaml.YamlShardingSphereDataSourceFactory.createDataSource(YamlShardingSphereDataSourceFactory.java:101)
~[shardingsphere-jdbc-core-5.4.1.jar:5.4.1]
at
org.apache.shardingsphere.driver.jdbc.core.driver.DriverDataSourceCache.createDataSource(DriverDataSourceCache.java:52)
~[shardingsphere-jdbc-core-5.4.1.jar:5.4.1]
at
org.apache.shardingsphere.driver.jdbc.core.driver.DriverDataSourceCache.lambda$get$0(DriverDataSourceCache.java:46)
~[shardingsphere-jdbc-core-5.4.1.jar:5.4.1]
at
java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
~[na:na]
at
org.apache.shardingsphere.driver.jdbc.core.driver.DriverDataSourceCache.get(DriverDataSourceCache.java:46)
~[shardingsphere-jdbc-core-5.4.1.jar:5.4.1]
at
org.apache.shardingsphere.driver.ShardingSphereDriver.connect(ShardingSphereDriver.java:53)
~[shardingsphere-jdbc-core-5.4.1.jar:5.4.1]
at
com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:121)
~[HikariCP-5.0.1.jar:na]
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359)
~[HikariCP-5.0.1.jar:na]
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201)
~[HikariCP-5.0.1.jar:na]
at
com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470)
~[HikariCP-5.0.1.jar:na]
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)
~[HikariCP-5.0.1.jar:na]
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:100)
~[HikariCP-5.0.1.jar:na]
at
com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
~[HikariCP-5.0.1.jar:na]
at
org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)
~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]
at
org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:437)
~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]
at
org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:61)
~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]
at
org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:279)
~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]
at
org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:193)
~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]
at
org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:69)
~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]
at
org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:119)
~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]
at
org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:264)
~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]
at
org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:239)
~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]
at
org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:216)
~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]
at
org.hibernate.boot.model.relational.Database.<init>(Database.java:45)
~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]
at
org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:231)
~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]
at
org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:199)
~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]
at
org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:169)
~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]
at
org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1383)
~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]
at
org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1454)
~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]
at
org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75)
~[spring-orm-6.0.13.jar:6.0.13]
at
org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:376)
~[spring-orm-6.0.13.jar:6.0.13]
at
org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409)
~[spring-orm-6.0.13.jar:6.0.13]
at
org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396)
~[spring-orm-6.0.13.jar:6.0.13]
at
org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:352)
~[spring-orm-6.0.13.jar:6.0.13]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1817)
~[spring-beans-6.0.13.jar:6.0.13]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1766)
~[spring-beans-6.0.13.jar:6.0.13]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598)
~[spring-beans-6.0.13.jar:6.0.13]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520)
~[spring-beans-6.0.13.jar:6.0.13]
at
org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
~[spring-beans-6.0.13.jar:6.0.13]
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
~[spring-beans-6.0.13.jar:6.0.13]
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
~[spring-beans-6.0.13.jar:6.0.13]
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
~[spring-beans-6.0.13.jar:6.0.13]
at
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1166)
~[spring-context-6.0.13.jar:6.0.13]
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:940)
~[spring-context-6.0.13.jar:6.0.13]
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616)
~[spring-context-6.0.13.jar:6.0.13]
at
org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
~[spring-boot-3.1.5.jar:3.1.5]
at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:738)
~[spring-boot-3.1.5.jar:3.1.5]
at
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:440)
~[spring-boot-3.1.5.jar:3.1.5]
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
~[spring-boot-3.1.5.jar:3.1.5]
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1306)
~[spring-boot-3.1.5.jar:3.1.5]
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1295)
~[spring-boot-3.1.5.jar:3.1.5]
at com.xxx.xxx.app.service.XXXApplication.main(XXXApplication.java:15)
~[classes/:na]
Caused by: org.yaml.snakeyaml.constructor.ConstructorException: Cannot
create property=dataSources for
JavaBean=org.apache.shardingsphere.readwritesplitting.yaml.config.YamlReadwriteSplittingRuleConfiguration@7af17d31
in 'reader', line 21, column 3:
- !READWRITE_SPLITTING
^
Cannot create property=write_data_source_name for
JavaBean=org.apache.shardingsphere.readwritesplitting.yaml.config.rule.YamlReadwriteSplittingDataSourceRuleConfiguration@7c8cea05
in 'reader', line 24, column 7:
write_data_source_name: ds_1
^
Unable to find property 'write_data_source_name' on class:
org.apache.shardingsphere.readwritesplitting.yaml.config.rule.YamlReadwriteSplittingDataSourceRuleConfiguration
in 'reader', line 24, column 31:
write_data_source_name: ds_1
^
in 'reader', line 23, column 5:
readwrite_ds:
^
at
org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:321)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:207)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:358)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:270)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:253)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.BaseConstructor.constructSequenceStep2(BaseConstructor.java:469)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.BaseConstructor.constructSequence(BaseConstructor.java:435)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.Constructor$ConstructSequence.construct(Constructor.java:560)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:270)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:253)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.newInstance(Constructor.java:333)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:298)
~[snakeyaml-1.33.jar:na]
... 61 common frames omitted
Caused by: org.yaml.snakeyaml.constructor.ConstructorException: Cannot
create property=write_data_source_name for
JavaBean=org.apache.shardingsphere.readwritesplitting.yaml.config.rule.YamlReadwriteSplittingDataSourceRuleConfiguration@7c8cea05
in 'reader', line 24, column 7:
write_data_source_name: ds_1
^
Unable to find property 'write_data_source_name' on class:
org.apache.shardingsphere.readwritesplitting.yaml.config.rule.YamlReadwriteSplittingDataSourceRuleConfiguration
in 'reader', line 24, column 31:
write_data_source_name: ds_1
^
at
org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:321)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:207)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:270)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:253)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping2ndStep(BaseConstructor.java:581)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.SafeConstructor.constructMapping2ndStep(SafeConstructor.java:213)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping(BaseConstructor.java:557)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:193)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:270)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:253)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.newInstance(Constructor.java:333)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:298)
~[snakeyaml-1.33.jar:na]
... 72 common frames omitted
Caused by: org.yaml.snakeyaml.error.YAMLException: Unable to find property
'write_data_source_name' on class:
org.apache.shardingsphere.readwritesplitting.yaml.config.rule.YamlReadwriteSplittingDataSourceRuleConfiguration
at
org.yaml.snakeyaml.introspector.PropertyUtils.getProperty(PropertyUtils.java:155)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.introspector.PropertyUtils.getProperty(PropertyUtils.java:145)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.getProperty(Constructor.java:337)
~[snakeyaml-1.33.jar:na]
at
org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:261)
~[snakeyaml-1.33.jar:na]
... 83 common frames omitted
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]