You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建Corda示例irs-demo时遇废弃API警告问题求助

解决Corda irs-demo构建时的importAttachment废弃警告

嘿,我来帮你搞定这个Corda irs-demo构建时碰到的废弃API警告问题~这个警告的根源是Corda测试工具类里的旧版importAttachment(InputStream)方法已经被标记为废弃了——官方觉得这个方法太简陋,缺少附件必须的元数据(比如文件名、签名信息这些关键内容),所以推出了带更多参数的重载方法来替代它。下面是具体的解决步骤:

1. 定位废弃方法的调用位置

根据你给出的警告信息,问题出在C:\Users\ravi\corda\testing\test-utils\src\main\kotlin\net\corda\testing\dsl\TestDSL.kt的第284行,找到对应的代码行,应该是类似这样的调用:

val attachmentId = services.importAttachment(inputStream)

2. 替换为新版重载方法

把旧的调用换成带必要元数据的新版本,最基础的修改就是加上文件名参数——这是新版方法的必填项之一:

// 把文件名换成你实际附件对应的名称就行,比如这里用irs-demo相关的命名
val attachmentId = services.importAttachment(inputStream, filename = "irs-demo-contract-attachment.jar")

如果你的测试场景需要更完整的附件信息(比如签名验证、自定义哈希ID),可以补充更多参数:

// 示例:添加签名者公钥和自定义哈希ID
val signerPublicKey = // 这里获取测试节点的公钥,比如测试用的Alice节点公钥
val attachmentHash = SecureHash.sha256(inputStream.readBytes())
inputStream.reset() // 注意重置流的位置,因为刚才读取字节计算哈希了

val attachmentId = services.importAttachment(
    inputStream = inputStream,
    filename = "irs-demo-contract-attachment.jar",
    signers = listOf(signerPublicKey),
    attachmentId = attachmentHash
)

3. 重新构建项目

修改完代码后,回到irs-demo项目的根目录,执行下面的命令重新构建:

./gradlew clean build

这样就能彻底消除这个废弃API的警告啦。

额外说明

这个废弃是Corda为了提升附件安全性和可追溯性做的调整——旧方法只传个输入流,附件的关键信息都没明确指定,新版方法要求你把这些信息明明白白传进去,避免了隐含的风险。如果你的其他测试代码里也用了这个废弃方法,记得按同样的方式逐一替换哦~

内容的提问来源于stack exchange,提问作者Teja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:17:24