【问题标题】:Getting FQDN on new server with systemd using Java使用 Java 在带有 systemd 的新服务器上获取 FQDN
【发布时间】:2016-05-30 10:28:59
【问题描述】:

在我们的部署系统上,我们使用 Java 来获取我们正在使用的部署机器的完全限定域名。

我们使用以下方法: https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html#getCanonicalHostName--

迁移到新服务器后,我们遇到了与 systemd 相关的问题,它无法解析域:

Caused by: java.net.UnknownHostException: *machineName*: Name or service not known

这是我们使用的旧实验室与我们的 IT 部门能想到的新实验室之间的唯一区别。

我在网上搜索了 2 天以寻求任何解决方案,但找不到最佳行动方案。

有什么想法吗?

编辑问题:

我尝试过的一些输出 -

root@myd-vm11924:~# hostname
myd-vm11924
root@myd-vm11924:~# hostname -a
hostname: Name or service not known
root@myd-vm11924:~# hostnamectl
   Static hostname: myd-vm11924
         Icon name: computer-vm
           Chassis: vm
           Boot ID: ef97951ccad04febb9856013e750e9ee
    Virtualization: vmware
  Operating System: Ubuntu 14.04.2 LTS
            Kernel: Linux 3.13.0-24-generic
      Architecture: x86_64
root@myd-vm11924:~#

TIA。

【问题讨论】:

  • 在 Ubuntu 14.04 上运行 systemd 是不寻常的。直到后来的版本,它才成为默认的初始化系统。也许这有某种关系。您是否在 Ubuntu 16.04 上尝试过代码?
  • 不幸的是,我正在使用 IT 批准的内容,他们提供了我们正在使用的模板和操作系统版本(由于安全要求等)我无法提供 16.04,因为它们不是还支持它。试图获得与 AWS 合作的预算,但在这方面没有运气:)

标签: java hostname systemd fqdn


【解决方案1】:

首先,我会实际检查其他工具是否按预期返回主机名。特别是旧版主机名报告工具:

hostname

还有新的 systemd 专用工具:

hostnamectl

如果这些报告正确答案而 Java 没有,您可以在代码中添加一个工作区,以对这些返回正确响应的工具进行系统调用。

否则,您可以向 Java 工具提供商提交错误。

【讨论】:

  • 感谢您的建议,但我已经尝试过了,但您是对的 - 我应该提到并发布它 - 编辑了我的答案 :)
猜你喜欢
  • 1970-01-01
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
  • 2016-09-05
  • 2019-12-13
  • 1970-01-01
  • 2020-10-01
  • 1970-01-01
相关资源
最近更新 更多