web-dev-qa-db-ja.com

java.net.ConnectException:接続がタイムアウトしました:接続しますか?

私は自分のコードでRMIを使用しています:

 import Java.rmi.*;

 public interface AddServerIntf extends Remote {
  double add(double d1,double d2) throws RemoteException;
 }

import Java.rmi.*;
import Java.rmi.server.*;

public class AddServerImpl extends UnicastRemoteObject implements AddServerIntf {
  public AddServerImpl() throws RemoteException {
  }

 public double add(double d1,double d2) throws RemoteException {
  return d1+d2;
 }
}  

import Java.net.*;
import Java.rmi.*;

public class AddServer {
   public static void main(String args[]) {
    try {
     AddServerImpl addServerImpl=new AddServerImpl();
     Naming.rebind("AddServer",addServerImpl);
    }  catch(Exception exc) {
          System.out.println(exc);
       }
   }
}

import Java.rmi.*;
public class AddClient {
  public static void main(String args[]) {
     try {
       String Url="rmi://"+args[0]+"/AddServer";
       AddServerIntf addServerIntf=(AddServerIntf)Naming.lookup(Url);
       System.out.println("The first number is "+args[1]);
       double d1=Double.valueOf(args[1]).doubleValue();
       System.out.println("The second number is: "+args[2]);
       double d2=Double.valueOf(args[2]).doubleValue();
       System.out.println("The Sum is: "+addServerIntf.add(d1,d2));
     }  catch(Exception exc) {
         System.out.println(exc);
       }
   }
 }

これらは、書き込まれた4つの.Javaファイルです。

次に、これらすべてのファイルをコンパイルします。次に、rmic AddServerImplを使用してstubを作成します。その後、start rmiregistryを使用してサーバー側でrmiレジストリを開始します。次に、Java AddServerを使用してサーバーを起動し、最後にJava AddClient 27.60.200.80 5 9を使用してクライアントを起動します。 しかし何も起こりません

クライアント側でスローされる例外はJava.net.ConnectException : connection timed out : connect

理由は何ですか?これをどのように解決できますか?

クライアントマシンでは、これらは次の.classファイルAddClient.class AddServerImpl.class AddServerImpl_Stub.classおよびサーバー側でAddServer.class AddServerImpl.class AddServerImpl_Stub.class AddServerIntf.classです。

12
saplingPro

エラーメッセージにすべてが記載されています:接続がタイムアウトしました。これは、ある(デフォルトの)時間枠内にリクエストが応答を受け取らなかったことを意味します。応答が受信されなかった理由は、次のいずれかです。

  • a)IP /ドメインまたはポートが正しくありません
  • b)IP /ドメインまたはポート(つまりサービス)がダウンしている
  • c)IP /ドメインが応答するためにデフォルトのタイムアウトよりも長くかかっている
  • d)使用しているポートで要求または応答をブロックしているファイアウォールがある
  • e)その特定のホストへのリクエストをブロックしているファイアウォールがある
  • f)インターネットアクセスがダウンしています

ISPによってファイアウォールとポートまたはIPブロッキングが設定されている場合があることに注意してください

34
Richard H

例外:Java.net.ConnectException

これは、指定された時間内にリクエストがサーバーから応答を得られなかったことを意味します。そして、これらはこの例外のいくつかの理由です:

  • サーバーをオーバーロードするリクエストが多すぎる
  • 間違ったネットワーク構成または回線の過負荷によるパケット損失の要求
  • ファイアウォールは、取得する前に要求パケットを消費することがあります
  • スレッド接続プールの構成と接続プールの現在の状態にも依存します
  • 移行中に応答パケットが失われました
0
Radadiya Nikunj

番号(1):IPが正しくありません-正解です。/etc/hostsファイル(別名C:\ Windows\system32\drivers\etc\hosts)には、ローカルマシン名のエントリが正しくありませんでした。 「hosts」ファイルを修正し、Camelは非常にうまく動作します。ポインターをありがとう。

0
Tater_Head