正在删除Corda节点webserver,这是一个Jetty网络服务器。 因此,我们如何使用spring框架开发特定于节点的Web应用程序,但是创建的spring容器应该知道用户通过实现Corda接口(如ContractState,Contract,Flow等)开发的所有CordaApp特定类。
所以我在一行中的问题是如何替换Corda特定的Web服务器?
答案 0 :(得分:0)
有一个示例Corda Spring网络服务器here。
通过将定义各种状态,合同和流的CorDapp包含为服务器的编译依赖项,然后将这些状态放在类路径上,并且可以由服务器的端点引用。
在这种情况下,CorDapp被定义为同一项目中的另一个模块,因此我们使用语法cordapp project(":[CORDAPP_NAME]")
。如果在其他地方定义了CorDapp,我们将使用此语法:cordapp "[GROUP_NAME]:[CORDAPP_NAME]:[VERSION]"
。
答案 1 :(得分:0)
请遵循上述准则。请注意,Spring使用不同的序列化/反序列化,因此无论您使用内置CordaWeb服务器获得的响应,您的响应都会有所不同。
要使用Corda特定的序列化/反序列化,您需要注册 corda的杰克逊包装器。
示例:
ObjectMapper mapper = JacksonSupport.createNonRpcMapper();
//which is included in this dependency
cordaCompile "net.corda:corda-jackson:$corda_release_version"
答案 2 :(得分:0)
Corbeans提供了一个Spring Boot启动程序和其他用于Corda集成的实用程序。您可以使用它来制作自己的自定义Web服务器,并支持单个或多个节点:
https://manosbatsis.github.io/corbeans
如果您使用的是Corda / CordFormation版本4和更高版本,您甚至可以将Web服务器添加到Gradle构建的deployNodes
任务中,并通过常用的runnodes
脚本启动自定义Web服务器。查看文档以获取更多信息。