Надувной замок без такой ошибки метода (v1.61) и milo (v0.3.8) - PullRequest
0 голосов
/ 06 марта 2020

Моя ситуация похожа на это, но это более новая версия bouncycastle, поэтому я не уверен, что это та же самая ситуация, и это четыре года спустя без принятого ответа:

Надувной замок нет ошибка такого метода

Я использую b c с eclipse milo со сборкой ant: мои зависимости: bcpkix-jdk15on-1.61.jar bcprov-jdk15on-1.61.jar

Когда я запускаю наше приложение в Eclipse, мы можем безопасно и без проблем подключиться к тестовому клиенту UA Expert. Однако при подключении с помощью UA Expert к серверу milo op c -ua в нашем развернутом приложении на SB C я вижу эту ошибку:

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, и я верю всем пути к классам указывают на текущую библиотеку.

Ответы [ 2 ]

2 голосов
/ 06 марта 2020

У вас должна быть другая, более старая версия BouncyCastle, которая также находится на пути к классам или в вашей сборке. Метод, вызвавший эту ошибку, был добавлен только в B C v1.61.

0 голосов
/ 10 марта 2020

Мы обнаружили, что другой 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" />
        ...
...