构建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
相关产品推荐
相关产品推荐

