我正在研究Corda企业版的试用版(cordapp-example-release-enterpise-v3)。我试图通过使用下面显示的代码将一个Node的数据库从H2更改为PostgreSQL
node {
dataSourceProperties = {
dataSourceClassName = "org.postgresql.ds.PGSimpleDataSource"
dataSource.url = "jdbc:postgresql://localhost:5432/postgres"
dataSource.user = test
dataSource.password = test123
}
database = {
transactionIsolationLevel = READ_COMMITTED
}
name "O=PartyC,L=Paris,C=FR"
p2pPort 10013
rpcSettings {
address("localhost:10014")
adminAddress("localhost:10054")
}
webPort 10015
cordapps = ["$corda_release_group:corda-finance:$corda_release_version"]
rpcUsers = [[user: "user1", "password": "test", "permissions": ["ALL"]]]
}
在使用gradlew clean build启动buid时,出现类似Could not set unknown property 'dataSourceProperties' for object of type net.corda.plugins.Node.
的错误,有人可以帮助我。另外,如果我使用IntelliJ运行代码,那么如何编辑NodeDriver kt文件?。
答案 0 :(得分:1)
dataSourceProperties
属于node.conf
而不是deployNodes
任务,因此它不起作用,因为cordform
对dataSourceProperties
一无所知,您会看到错误Could not set unknown property
。您可以使用extraConfig
来完成这项工作。但是,我建议在node.conf
中进行这些更改,并使用bootstrapper工具进行引导。下面是一个使用extraConfig
的示例。
例如:
node {
....
extraConfig = [
dataSourceProperties : [
'dataSourceClassName' : "org.h2.jdbcx.JdbcDataSource",
'"dataSource.url"' : "jdbc:h2:tcp://localhost:9105/persistence;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=10000;WRITE_DELAY=100;AUTO_RECONNECT=TRUE;",
'"dataSource.user"' : "sa",
'"dataSource.password"' : ""
],
database : ["transactionIsolationLevel" :"READ_COMMITTED"]
]
}