Netty的DnsNameResolverBuilder在不同平台上的行为有所不同

时间:2016-11-23 23:07:24

标签: java scala netty

我有一些使用Netty的DnsNameResolverBuilder的代码,它在一台Linux机器上运行得很好,但是,当在另一台机器上运行时,无法初始化,抛出下面的空指针异常:

java.lang.NullPointerException
    at io.netty.resolver.dns.DnsNameResolver.<init>(DnsNameResolver.java:217)
    at io.netty.resolver.dns.DnsNameResolverBuilder.build(DnsNameResolverBuilder.java:348)

这是由DnsNameResolverBuilder.build()调用引起的,实际上没有进行任何名称解析。除了netty-all-4.1.6.Final.jar之外,小测试示例没有依赖关系。我使用scala,并在每台机器上单独编译。

效果很好:

 $ scala -version
 Scala code runner version 2.12.0-M1 -- Copyright 2002-2013, LAMP/EPFL

 $ java -version
 java version "1.8.0_92"
 Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
 Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)

失败:

# scala -version
Scala code runner version 2.12.0 -- Copyright 2002-2016, LAMP/EPFL and Lightbend, Inc.

# java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)

Netty jar是相同的(我将它从一台机器复制到另一台机器上),并且类路径中没有其他jar(除了要重现的代码)。

可能是什么原因?这是JVM不兼容问题吗?代码完全相同,平台几乎相同,只是初始化,而不是呼叫网络。

并且,如果没有明显的答案:我如何去尝试确定它?

0 个答案:

没有答案