充气城堡没有这样的方法错误 (v1.61) 和 milo (v0.3.8)
Bouncy castle no such method error (v1.61) and milo (v0.3.8)
我的情况与此类似,但它是 bouncycastle 的较新版本,所以我不确定情况是否相同,而且四年后还没有公认的答案:
Bouncy castle no such method error
我正在使用 bc 和带有 ant 构建的 eclipse milo:我的依赖项是:
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(UascServerAsymmetricHandler.java:301)
at org.eclipse.milo.opcua.stack.core.channel.SerializationQueue.lambda$encode[=10=](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 构建,我相信所有类路径都指向当前库。
您必须有另一个较旧的 BouncyCastle 版本,它也在类路径上或以某种方式在您的构建中。导致此错误的方法仅在 BC v1.61 中添加。
我们发现另一个 jar pdfbox-all-2.0.13.jar 中有一个较旧的嵌入式版本的 bouncycastle,我们的 ant 构建正在将这些 jar 解压缩到所需的较新库的较新版本上。删除旧的充气城堡 类 或使用香草 pdfbox 似乎可以解决 NoSuchMethod 问题。无法想象这将是许多其他人的常见情况。
<jar jarfile="${dist}/thirdparty.jar">
<manifest>
<!--These jars need to be at the same level as the jar created for this project-->
<attribute name="Compiler" value="${build.compiler}"/>
</manifest>
<fileset dir="./src" includes="META-INF/persistence.xml" />
<zipfileset excludes="META-INF/*.SF" src="../../../filtec-bin/packages/rhino/lib/rhino.jar" />
<zipfileset excludes="META-INF/*.SF" src="../../../filtec-bin/packages/junit4/junit-4.12.jar" />
...
<zipfileset excludes="META-INF/*.SF" src="../../../filtec-bin/packages/bouncycastle/bcpkix-jdk15on-1.61.jar" />
<zipfileset excludes="META-INF/*.SF" src="../../../filtec-bin/packages/bouncycastle/bcprov-jdk15on-1.61.jar" />
...
<zipfileset excludes="META-INF/*.SF" src="../../../filtec-bin/packages/pdfBOX/pdfbox-app-2.0.13.jar" />
...
我的情况与此类似,但它是 bouncycastle 的较新版本,所以我不确定情况是否相同,而且四年后还没有公认的答案:
Bouncy castle no such method error
我正在使用 bc 和带有 ant 构建的 eclipse milo:我的依赖项是: 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(UascServerAsymmetricHandler.java:301)
at org.eclipse.milo.opcua.stack.core.channel.SerializationQueue.lambda$encode[=10=](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 构建,我相信所有类路径都指向当前库。
您必须有另一个较旧的 BouncyCastle 版本,它也在类路径上或以某种方式在您的构建中。导致此错误的方法仅在 BC v1.61 中添加。
我们发现另一个 jar pdfbox-all-2.0.13.jar 中有一个较旧的嵌入式版本的 bouncycastle,我们的 ant 构建正在将这些 jar 解压缩到所需的较新库的较新版本上。删除旧的充气城堡 类 或使用香草 pdfbox 似乎可以解决 NoSuchMethod 问题。无法想象这将是许多其他人的常见情况。
<jar jarfile="${dist}/thirdparty.jar">
<manifest>
<!--These jars need to be at the same level as the jar created for this project-->
<attribute name="Compiler" value="${build.compiler}"/>
</manifest>
<fileset dir="./src" includes="META-INF/persistence.xml" />
<zipfileset excludes="META-INF/*.SF" src="../../../filtec-bin/packages/rhino/lib/rhino.jar" />
<zipfileset excludes="META-INF/*.SF" src="../../../filtec-bin/packages/junit4/junit-4.12.jar" />
...
<zipfileset excludes="META-INF/*.SF" src="../../../filtec-bin/packages/bouncycastle/bcpkix-jdk15on-1.61.jar" />
<zipfileset excludes="META-INF/*.SF" src="../../../filtec-bin/packages/bouncycastle/bcprov-jdk15on-1.61.jar" />
...
<zipfileset excludes="META-INF/*.SF" src="../../../filtec-bin/packages/pdfBOX/pdfbox-app-2.0.13.jar" />
...