我们如何用spring替换corda特定的Web服务器

时间:2018-01-23 13:43:55

标签: corda

正在删除Corda节点webserver,这是一个Jetty网络服务器。 因此,我们如何使用spring框架开发特定于节点的Web应用程序,但是创建的spring容器应该知道用户通过实现Corda接口(如ContractState,Contract,Flow等)开发的所有CordaApp特定类。

所以我在一行中的问题是如何替换Corda特定的Web服务器?

3 个答案:

答案 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服务器。查看文档以获取更多信息。