我的情况与此类似,但它是 bouncycastle 的较新版本,所以我不确定情况是否相同,四年后没有公认的答案:
我正在使用带有 ant 构建的 eclipse milo 的 bc:我的依赖项是:bcpkix-jdk15on-1.61.jar bcprov-jdk15on-1.61.jar
当我在 Eclipse 中启动我们的应用程序时,我们能够安全地连接到 UA Expert 测试客户端,没有任何问题。但是,当使用 UA Expert 连接到 SBC 上我们部署的应用程序上的 milo opc-ua 服务器时,我看到此错误:
Mar 05, 2020 6:54:48 PM org.eclipse.milo.opcua.stack.core.util.ExecutionQueue$Task run
WARNING: Uncaught Throwable during execution.
java.lang.NoSuchMethodError: org.bouncycastle.util.Arrays.areAllZeroes([BII)Z
at org.eclipse.milo.opcua.stack.core.util.NonceUtil.validateNonce(NonceUtil.java:183)
at org.eclipse.milo.opcua.stack.core.util.NonceUtil.validateNonce(NonceUtil.java:153)
at org.eclipse.milo.opcua.stack.server.transport.uasc.UascServerAsymmetricHandler.openSecureChannel(UascServerAsymmetricHandler.java:437)
at org.eclipse.milo.opcua.stack.server.transport.uasc.UascServerAsymmetricHandler.lambda$sendOpenSecureChannelResponse$1(UascServerAsymmetricHandler.java:301)
at org.eclipse.milo.opcua.stack.core.channel.SerializationQueue.lambda$encode$0(SerializationQueue.java:57)
at org.eclipse.milo.opcua.stack.core.util.ExecutionQueue$Task.run(ExecutionQueue.java:119)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
我们有一个 ant 构建,我相信所有的类路径都指向当前的库。