我试图在Netty 4.0.23中使用SSL功能,但直到现在才失败。
问题是这样发生的(在运行时。在构建时没有问题发生。)
java.lang.UnsatisfiedLinkError: C:\Users\heuser\AppData\Local\Temp\netty-tcnative4254708149416235536.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1851)
at java.lang.Runtime.load0(Runtime.java:795)
at java.lang.System.load(System.java:1062)
at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:193)
at io.netty.handler.ssl.OpenSsl.<clinit>(OpenSsl.java:39)
at io.netty.handler.ssl.SslContext.newServerContext(SslContext.java:184)
at io.netty.handler.ssl.SslContext.newServerContext(SslContext.java:85)
似乎netty-tcnative4254708149416235536.dll文件有一些依赖关系,但不再有任何线索。
要修复错误和其他错误,请按照http://netty.io/wiki/forked-tomcat-native.html
中的说明进行操作如您所见,我已经在Windows(x86_64)中进行了测试。
此外,我在pom.xml中添加的内容是,
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections-maven</artifactId>
<version>0.9.8</version>
<type>maven-plugin</type>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-tcnative</artifactId>
<version>1.1.30.Fork2</version>
<classifier>${os.detected.classifier}</classifier>
</dependency>
...
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.2.3.Final</version>
</extension>
</extensions>