Пытается использовать 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
Я просто потратил 2 дня на это. google-cloud-logging 1.0.2 опирается на 4.1.8 и привел меня сюда. форсирование 4.1.9+ через maven решило его. – Nadav