Corda 3切换自定义Spring WebServer后deployNodes报JAR缺失错误
解决Corda 3移除内置WebServer后deployNodes任务报错的问题
嘿,这个坑我之前踩过!问题出在deployNodes任务的默认行为上——哪怕你已经移除了corda-webserver依赖,它还是会默认尝试给每个节点部署内置的WebServer,自然就会找不到对应的JAR包报错。下面给你两种解决办法:
方法一:直接禁用内置WebServer部署
在build.gradle的deployNodes任务里,给每个节点的配置加上webServer = false,明确告诉任务别管内置WebServer的事。示例代码如下:
task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) { node { name "O=PartyA,L=London,C=GB" p2pPort 10002 rpcSettings { address("localhost:10003") adminAddress("localhost:10043") } webServer = false // 关键配置:关闭内置WebServer部署 cordapps = ["$project.group:workflows:$project.version", "$project.group:contracts:$project.version"] } // 其他节点也要加上同样的webServer = false配置哦 }
方法二:部署自定义Spring WebServer(如果需要随节点一起打包)
要是你希望把自己的Spring WebServer JAR和节点一起部署,可以在节点配置里用extraJarFiles指定你的WebServer JAR路径,同时别忘了禁用内置的:
task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) { node { name "O=PartyA,L=London,C=GB" p2pPort 10002 rpcSettings { address("localhost:10003") adminAddress("localhost:10043") } webServer = false // 替换成你实际的Spring WebServer JAR路径 extraJarFiles = files("build/libs/your-spring-webserver-${project.version}.jar") cordapps = ["$project.group:workflows:$project.version", "$project.group:contracts:$project.version"] } }
小提示
- 记得先确认你的自定义Spring WebServer已经配置好了和Corda节点的RPC连接,不然就算部署了也没法和节点交互
- 执行
deployNodes前,可以先跑个./gradlew clean清理下旧构建文件,避免缓存搞事情
内容的提问来源于stack exchange,提问作者Joel
相关产品推荐
相关产品推荐

