如何在Netty 4.0.23中使用OpenSSL功能(出现错误,如无法找到依赖库)?

时间:2014-10-10 06:40:32

标签: openssl netty

我试图在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

中的说明进行操作
  1. 已安装OpenSSL(http://slproweb.com/products/Win32OpenSSL.html
  2. 将两个APR文件(libapr-1.dll,libapr-1.pdb)放入'C:\ OpenSSL-Win64 \ bin。'
  3. 将上述路径添加到$ Path
  4. 如您所见,我已经在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>
    

0 个答案:

没有答案