私は自分のコードで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
です。
エラーメッセージにすべてが記載されています:接続がタイムアウトしました。これは、ある(デフォルトの)時間枠内にリクエストが応答を受け取らなかったことを意味します。応答が受信されなかった理由は、次のいずれかです。
ISPによってファイアウォールとポートまたはIPブロッキングが設定されている場合があることに注意してください
例外:Java.net.ConnectException
これは、指定された時間内にリクエストがサーバーから応答を得られなかったことを意味します。そして、これらはこの例外のいくつかの理由です:
番号(1):IPが正しくありません-正解です。/etc/hostsファイル(別名C:\ Windows\system32\drivers\etc\hosts)には、ローカルマシン名のエントリが正しくありませんでした。 「hosts」ファイルを修正し、Camelは非常にうまく動作します。ポインターをありがとう。