Java corda无法设置postgreSQL数据库属性url

Java corda无法设置postgreSQL数据库属性url,java,kotlin,corda,Java,Kotlin,Corda,。。。corda部署节点失败。日志显示: [错误]2018-10-04T11:16:05466Z[main]util.PropertyElf.setProperty- 无法在目标类上设置属性url org.postgresql.ds.PGSimpleDataSource{} java.lang.reflect.InvocationTargetException:null 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[?:1.8.0_18

。。。corda部署节点失败。日志显示:

[错误]2018-10-04T11:16:05466Z[main]util.PropertyElf.setProperty- 无法在目标类上设置属性url org.postgresql.ds.PGSimpleDataSource{} java.lang.reflect.InvocationTargetException:null 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[?:1.8.0_181] 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_181] 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 ~[?:1.8.0_181] 在java.lang.reflect.Method.invoke(Method.java:498)~[?:1.8.0_181] 位于com.zaxxer.hikari.util.PropertyElf.setProperty(PropertyElf.java:146) ~[HikariCP-2.5.1.jar:?] 位于com.zaxxer.hikari.util.PropertyElf.lambda$setTargetFromProperties$0(PropertyElf.java:57) ~[HikariCP-2.5.1.jar:?] 在java.util.Hashtable.forEach(Hashtable.java:879)[?:1.8.0_181] 位于com.zaxxer.hikari.util.PropertyElf.setTargetFromProperties(PropertyElf.java:52) [HikariCP-2.5.1.罐子:?] 位于com.zaxxer.hikari.pool.PoolBase.initializeDataSource(PoolBase.java:315) [HikariCP-2.5.1.罐子:?] 在com.zaxxer.hikari.pool.PoolBase.(PoolBase.java:108)[HikariCP-2.5.1.jar:?] 在com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:99) [HikariCP-2.5.1.罐子:?] 在com.zaxxer.hikari.HikariDataSource。(HikariDataSource.java:71) [HikariCP-2.5.1.罐子:?] 位于net.corda.node.internal.DataSourceFactory.createDataSource(DataSourceFactory.kt:38) [corda-node-3.2-corda.jar:?] 在net.corda.node.internal.DataSourceFactory.createDataSource$default处(DataSourceFactory.kt:35) [corda-node-3.2-corda.jar:?] 位于net.corda.node.internal.AbstractNodeKt.configureDatabase(AbstractNode.kt:910) [corda-node-3.2-corda.jar:?] 位于net.corda.node.internal.AbstractNode.initialiseDatabasePersistence(AbstractNode.kt:680) [corda-node-3.2-corda.jar:?] 位于net.corda.node.internal.node.initialiseDatabasePersistence(node.kt:345) [corda-node-3.2-corda.jar:?] 在net.corda.node.internal.AbstractNode.start(AbstractNode.kt:206)上 [corda-node-3.2-corda.jar:?] 在net.corda.node.internal.node.start(node.kt:359)[corda-node-3.2-corda.jar:?] at net.corda.node.internal.NodeStartup.startNode(NodeStartup.kt:145) [corda-node-3.2-corda.jar:?] 在net.corda.node.internal.NodeStartup.run(NodeStartup.kt:115)[corda-node-3.2-corda.jar:?] 在net.corda.node.corda.main(corda.kt:13)[corda-node-3.2-corda.jar:?]

数据源属性={
“dataSourceClassName”:org.postgresql.ds.PGSimpleDataSource
“dataSource.url”:“jdbc:Postgresql://127.0.0.1:5432/postgres“
“dataSource.user”:“user”
“dataSource.password”:“password”
}
数据库={
transactionIsolationLevel=READ_COMMITTED
schema=公证人
}


我也遇到了同样的问题,解决方案是使用以下格式重写
node.conf
中的数据库属性:

"dataSourceProperties.dataSourceClassName"=org.postgresql.ds.PGSimpleDataSource

这似乎是一个问题,
“DataSourceProperty.dataSourceClassName”
DataSourceProperty.dataSourceClassName
(无引号)的处理方式不同。

这是Corda 3.X的错误,将在Corda 4中修复。
I tried alot and Finally I got solution. Again solution is based on type of Datasource and its version.
The root cause of this issue is PGSimpleDataSource does not have "url" property but other properties are there to form URL such as serverName, portNumber, DataBaseName. We did not specify those property because we specify URL that is incorrect for PGSimpleDataSource.

Solution:
remove url property of datasource 
// datasource..addDataSourceProperty(("url", databaseProp.getUrl()))

Add following things in place of URL.
    dataSource.addDataSourceProperty("serverName", "HOSTName/IP");
        //dataSource.addDataSourceProperty("serverName", "localhost");
        dataSource.addDataSourceProperty("portNumber", "5432");
        dataSource.addDataSourceProperty("databaseName", "testDB");

its is working fine after struggling a lot. :)