如何在传递给(Java EE)InitialContext 类的“env”参数中为“java.naming.provider.url”属性使用完全限定的主机名。无论我传入一个 IP 地址,还是一个完全限定的(host.domain ...)主机名,lookup(name) 调用都会失败,说它找不到主机名,其中主机名只是没有其域的主机。例如 - 假设 mypc.somedomain.net 是 1.2.3.4,输入“1.2.3.4”或“mypc.somedomain.net”将失败,如下所示:
javax.naming.CommunicationException java.rmi.UnknownHostException: mypc
我需要将 DNS 服务器传递到 InitialContext 吗?让底层操作系统完成这项工作还不够聪明吗?(如“ping mypc.somedomain.net”,它只是工作)
客户端和服务器既不在同一台机器上,也不在同一个子网中,所以我必须使用完全限定的主机名。为了对“Robin”进行一些改进,我们通常在单独的 JVM 中运行客户端进程,该 JVM 通常会访问 localhost 上的服务器,或者有时在同一子网/域(例如 - “testbox”)上的另一个主机上,这不需要一个完全限定的名称。
另外,我尝试添加“jns://”前缀和“:1099”后缀(例如-“jns://mypc.somedomain.net:1099”),并不是说这些是使“testbox”工作所必需的,并且得到了同样的例外。
我搜索了一下,发现了这个错误的几个实例(InitialContext / JBoss -> UnknownHostException)或类似的问题,但没有答案。哎哟。