3

私のプログラムはしばらくの間完全に実行されますが、その後エラーが発生します

java.net.UnknownHostException: www.sears.com
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:666)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1534)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1439)
at extractData.ReviewsSearch.getJsonResponse(ReviewsSearch.java:28)
at main.java.DepartmentCategories_Main.main(DepartmentCategories_Main.java:110)

java.net.UnknownHostException: www.sears.com
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
at sun.net.www.http.HttpClient.New(HttpClient.java:308)
at sun.net.www.http.HttpClient.New(HttpClient.java:326)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1167)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1103)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:997)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:931)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1511)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1439)
at extractData.productHierarchySearch.getHierarchy(productHierarchySearch.java:27)
at main.java.DepartmentCategories_Main.main(DepartmentCategories_Main.java:115)

理由は何ですか?さらに情報が必要な場合はお知らせください

編集:pingコマンドを試してみたところ、インターネット接続であることがわかりました。プログラムを ssh サーバーで実行していますが、コードが停止しないようにする方法を知りたいです。接続を待ちたい。

4

3 に答える 3

0

他の回答は、あなたが見ている特定の例外に対処しています。しかし、あなたは(おそらく)それについて何をすべきかを本当に尋ねています.

経験したように、現実の世界では失敗する (そして例外をスローする) ことがあります。例外が一時的なものであると予想される場合は、例外をキャッチし、操作を再試行するように手配する必要があります。すぐに再試行することもできますが、多くの場合、再試行する前に少し待った方がよいでしょう。アイデアは、再試行する前に、発生している問題を修正 (またはそれ自体を修正) できるようにすることです。

オペレーターの介入が必要な場合に備えて、例外 (または少なくとも要約) をログに記録することをお勧めします。

その操作が成功するまで続行できない場合は、おそらくループで再試行する必要があります。他の作業ができる場合は、問題の項目を作業のキューの後ろに置くことで、再試行が実装される場合があります。

前者の場合:

doWork("www.sears.com");

になる

while (true) {
    try {
        doWork("www.sears.com");
        break;
    } catch (UnknownHostException e) {
        logger.log(e.getMessage());
        Thread.sleep(10000);
    }
}
于 2015-07-23T19:42:19.440 に答える
0

サーバーがサーバーの IP アドレスを認識できないようです。このエラーが表示された場合、DNS が正常に機能しているかどうかを確認できますか? コマンド プロンプト ウィンドウを開いて、そのサーバー www.sears.com に ping を実行してみてください。

于 2015-07-06T18:23:25.377 に答える
0

ホスト名を使用してリモート ホストに接続しようとしているが、そのホストの IP アドレスを解決できない場合に表示されます。

フォーム ドキュメント:

ホストの IP アドレスを判別できなかったことを示すためにスローされます。

UnknownHostException を解決するには?

UnknownHostExceptionかなり単純な問題を示します。到達しようとしているリモート ホストの IP アドレスを解決できないこと。したがって、これに対する解決策は非常に簡単です。Socket (または をスローするその他のメソッドUnknownHostException) の入力をチェックし、それが意図したものであることを検証する必要があります。正しいホスト名を持っているかどうかわからない場合は、UNIX ターミナルを起動し、nslookup コマンドなどを使用して、DNS サーバーがホスト名を IP アドレスに正常に解決できるかどうかを確認できます。例を次に示します。

nikos@nikos:~$ nslookup www.google.com
Server:     127.0.1.1
Address:    127.0.1.1#53

Non-authoritative answer:
Name:   www.google.com
Address: 173.194.39.209
Name:   www.google.com
Address: 173.194.39.210
Name:   www.google.com
Address: 173.194.39.212
Name:   www.google.com
Address: 173.194.39.211
Name:   www.google.com
Address: 173.194.39.208

nikos@nikos:~$ 

Windows を使用している場合は、host コマンドを使用できます。それが期待どおりに機能しない場合は、ホスト名が正しいかどうかを確認してから、DNS キャッシュを更新してみてください。それでもうまくいかない場合は、別の DNS サーバーを使用してみてください。たとえば、 Google Public DNS は非常に優れた代替手段です。

参照:

http://examples.javacodegeeks.com/core-java/net/unknownhostexception/java-net-unknownhostexception-how-to-solve-unknownhostexception/

于 2015-07-06T18:26:40.593 に答える