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

How can we replace corda specific web server with spring

作为 Corda 节点网络服务器,这是一个 Jetty 网络服务器正在被描述。 那么我们如何使用 spring 框架开发特定于节点的 Web 应用程序,但是创建的 spring 容器应该知道用户通过实现 Corda 接口开发的所有 CordaApp 特定 类如 ContractState、Contract、Flow 等

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

有一个示例 Corda Spring 网络服务器 here

通过将定义各种状态、契约和流程的 CorDapp 包含为服务器的编译依赖项,然后将这些状态放置在类路径中,并可以被服务器的端点引用。

在这种情况下,CorDapp 被定义为同一项目中的另一个模块,因此我们使用语法 cordapp project(":[CORDAPP_NAME]")。如果 CorDapp 是在别处定义的,我们将使用此语法代替:cordapp "[GROUP_NAME]:[CORDAPP_NAME]:[VERSION]".

请遵循上面的 guidelines.Please 注意,Spring 使用不同的 serialization/Deserialization 因此您的响应 将与您使用内置 cordaweb 服务器得到的响应不同。

要使用特定的 corda serialization/desrialization,您需要注册 corda 的 jackson wrapper

示例:

ObjectMapper mapper =  JacksonSupport.createNonRpcMapper();
//which is included in this dependency 
cordaCompile "net.corda:corda-jackson:$corda_release_version"