netty-tcnative бросает UnsatisfiedLinkError: io.netty.internal.tcnative.SSLContext.make (II) J - PullRequest
0 голосов
/ 14 января 2020

При попытке обойти приложение Java Vert.x для сшивания OCSP пришлось использовать библиотеку netty-tcnative, и в процессе было обнаружено следующее исключение.

io.vertx.core.impl.ContextImpl - 
Unhandled exception java.lang.UnsatisfiedLinkError: io.netty.internal.tcnative.SSLContext.make(II)J
    at io.netty.internal.tcnative.SSLContext.make(Native Method)
    ......
    ......
    at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:369)
    at io.vertx.core.impl.EventLoopContext.lambda$executeAsync$0(EventLoopContext.java:38)
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:164)
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.lang.Thread.run(Thread.java:748)

Кажется, Как будто отсутствует какая-то нативная библиотека, но неясно, какая именно.

Фрагмент кода

    int protocolOpts = 30;
    int mode = 1; // 1 for server and 0 for client
    try {
        long ctx = io.netty.internal.tcnative.SSLContext.make(protocolOpts, mode);
        io.netty.internal.tcnative.SSLContext.enableOcsp(ctx, false);
    } catch (Exception e) {
        e.printStackTrace();
    }

Сведения об окружении:

Ubuntu 18.04
netty-tcnative/2.0.28.Final/linux-x86_64
Openssl version: 1.1.1d (10 Sep 2019)

Я понимаю, что не идеально использовать internal пакеты (вариант Boringssl вообще не имеет этого пакета), но это один из обходных путей, который я мог бы попробовать, пока не будет решен https://github.com/eclipse-vertx/vert.x/issues/1689 , Любые предложения по этому поводу также должны быть полезны.

...