2017-01-28 7 views
0

Пытается использовать netty-tcnative-boringssl-static под tomcat. Когда обедает код из теста JUnit, он работает правильно, но не так в контейнере tomcat. Этот код в классе io.netty.handler.ssl.OpenSsl пытается загрузить собственную библиотеку из класса loader класса SSL.io.netty.handler.ssl.OpenSsl использует классы tomcat вместо self

private static void loadTcNative() throws Exception { 
    String os = normalizeOs(SystemPropertyUtil.get("os.name", "")); 
    String arch = normalizeArch(SystemPropertyUtil.get("os.arch", "")); 

    Set<String> libNames = new LinkedHashSet<String>(3); 
    // First, try loading the platform-specific library. Platform-specific 
    // libraries will be available if using a tcnative uber jar. 
    libNames.add("netty-tcnative-" + os + '-' + arch); 
    if (LINUX.equalsIgnoreCase(os)) { 
     // Fedora SSL lib so naming (libssl.so.10 vs libssl.so.1.0.0).. 
     libNames.add("netty-tcnative-" + os + '-' + arch + "-fedora"); 
    } 
    // finally the default library. 
    libNames.add("netty-tcnative"); 

    NativeLibraryLoader.loadFirstAvailable(SSL.class.getClassLoader(), 
     libNames.toArray(new String[libNames.size()])); 
} 

Когда он работает отдельно (например, из теста JUnit) это нахождение класса SSL в Netty-tcnative-boringssl-статическом банк и получать исходную библиотеку из него из WEB-INF/нативного в этих баночках зависимости. Но когда он работает под tomcat, он получает класс SSL из библиотеки tomcat и не может найти родную библиотеку.

Пробовал с котом 8 и 9

ответ

0

Кажется, если нашли решение в этой теме https://github.com/netty/netty-tcnative/issues/136

Я просто скопировал Нетти-tcnative-boringssl-static.jar и перекомпоновывается-jni.jar кот к нему в TOMCAT библиотечного каталога

1

Это будет исправлено в ближайшее время и быть частью 4.1.9.Final:

https://github.com/netty/netty/pull/5766

+0

Я просто потратил 2 дня на это. google-cloud-logging 1.0.2 опирается на 4.1.8 и привел меня сюда. форсирование 4.1.9+ через maven решило его. – Nadav