SecurityException 来自签名 jar 中冲突的 Cordapp 类

SecurityException from conflicting Cordapp classes in a signed jar

将 Cordapp 部署到 Web 服务器时收到以下错误:

Caused by: java.lang.SecurityException: class "<com.foo.objects>.Node"'s signer information does not match signer information of other classes in the same package"

  1. 为什么 Cordapp jar 与我的其他 Web 服务器依赖项冲突?
  2. Cordapp jar 是如何签名的?

原始错误的背景在这里:Java SecurityException: signer information does not match

如果 Cordapp jar 或它们的依赖项之一与您现有的依赖项之一共享相同的 class 名称,则会发生冲突。在这种情况下,Cordapp 依赖项中的 Node class 与另一个 Web 服务器依赖项发生冲突。

Cordapp jar 默认使用 Corda 开发证书进行签名。您可以通过将 cordapp signing enabled 选项设置为 false 来禁用此功能:https://docs.corda.net/cordapp-build-systems.html#signing-the-cordapp-jar