0

私たちの展開システムでは、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:~#

ティア。

4

1 に答える 1

1

まず、他のツールが期待どおりにホスト名を返していることを確認します。特に、従来のホスト名レポート ツール:

hostname

そして、このための新しい systemd 固有のツール:

hostnamectl

これらが正しい答えを報告し、Java が正しい答えを報告しない場合、コードに回避策を追加して、正しい応答を返すこれらのツールへのシステム コールを作成する可能性があります。

それ以外の場合は、Java ツール プロバイダーにバグを報告できます。

于 2016-05-31T13:23:32.940 に答える