2009-06-09 17 views
1

私はこの奇妙なエラーが発生しています。 AIX上でJavaがAIXからDNSアドレスを解決できない:UnknownHostException

、私は(ピング/ Telnetを使用して)、コマンドラインから

を自分のサーバーに到達することができた場合でも、私は、Javaを使用してみた場合、私はこれは、JavaによるものであるUnkownHostException

を持っていることができません何とか " DNSを使用していますが、理由はわかりません。私はIPアドレスを使用する場合、それは正常に動作します。

これは私のテストプログラムです。

import java.net.*; 

    public class Test { 
      public static void main(String [] args) throws Exception { 
        String host = args[0]; 
        int port = Integer.parseInt(args[1]); 
        System.out.println("Connecting to: " + host + " at port: " + port); 
        Socket socket = new Socket(host, port); 
        System.out.println("Connected!"); 
        socket.close(); 
        System.out.println("Closed!"); 

      } 
    } 

誰でも、AIXの下でJavaなどのプログラムがDNS情報にアクセスすることを禁止する設定を認識していますか?

I(よくsysadm)が/ etc/hostsに自分のアドレスを追加しましたが、どちらも動作しません。事前に

おかげ

Javaバージョン:

Java(TM) 2 Runtime Environment, Standard Edition (build pap32dev-20080315 (SR7)) 
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 AIX ppc-32 j9vmap3223-20080315 (JIT enabled) 
+0

キャッシングによって噛まれていますか? (http://java.sun.com/javase/6/docs/technotes/guides/net/properties.html)その後の試行後にJVMが再起動されますか? – rodion

+0

私はjavaコマンドラインから実行しています。myhost 80 –

+0

networkaddress.cache.ttlとnetworkaddress.cache.negative.ttlの両方を1に設定してもう一度やり直してください。 networkaddress.cache.ttlはデフォルトで-1です。これは "永遠にキャッシュする"ことを意味します。 – Jon

答えて

0

チェックしますので、コマンドラインでその詳細を指定した場合、プロキシを使用してする必要がある場合

http://helpdesk.objects.com.au/java/how-to-tell-a-java-application-to-use-a-proxy-server

+1

無邪気な質問:「ping」または「telnet host port」を使用してリモートホストにアクセスできる場合は、プロキシを使用する必要がありますか?または私は直接IPアドレスを使用してリモートホストに到達することができますか? – OscarRyz

0

あなたが持っています/ etc/servicesファイルをチェックインします。

私は同じエラーを持っていたし、サービスので、それがあった。

domain .......... 

がコメントしました。

1

私はこの問題も抱えています。私はUbuntu64に多数のJavaプログラムをインストールしており、ドメイン名を解決することはできません(複数のJREもあります - その中にはIBM製品もあります)。 IPアドレスを持つhostsファイルにドメイン名を入れると、それはそれらのドメインに対してのみ機能します。他のすべてのJava以外のプログラムは、ドメイン解決でうまく動作します。 WEIRD! 答えを見つけたら、ここに投稿します。あなたが答えを持っているなら、私たちを助けてください!

+1

これは最終的に修正されましたか?私は同じ問題を抱えている – Zubair

1

Javaは、システムで指定されたDNS検索の順序を尊重していないようです。例えば、​​の私のSolarisシステム上で私が定義されています:

ホスト:ファイルのNISのDNS

Javaは、私は理解していない最初のdns、に行きたいです。 sun.net.spi.nameservice.provider.nプロパティを設定することで、順序を変更することができるようです。

私が見つけた1つの回避策は、 '。'を追加することです。ホスト名の最後に。/etc/hostsに、私は私のjavaアプリで

192.168.1.1 mailhost 

を持っている場合たとえば、私はInetAddress.getAllByName("mailhost.")を指定します。

1

システムプロパティに

sun.net.spi.nameservice.providerを設定します。1 = dns、sun

Ubuntuでこの問題が修正されました

関連する問題