単純なRMIサーバークライアントプログラムをJAVAに実装しています。私は実際にこれに不慣れです。私は4つのJavaファイルを持っています。
Stack.java
import java.rmi.*;
public interface Stack extends Remote{
public void push(int p) throws RemoteException;
public int pop() throws RemoteException;
}
StackImp.java
import java.rmi.*;
import java.rmi.server.*;
public class StackImp extends UnicastRemoteObject implements Stack{
private int tos, data[], size;
public StackImp()throws RemoteException{
super();
}
public StackImp(int s)throws RemoteException{
super();
size = s;
data = new int[size];
tos=-1;
}
public void push(int p)throws RemoteException{
tos++;
data[tos]=p;
}
public int pop()throws RemoteException{
int temp = data[tos];
tos--;
return temp;
}
}
RMIServer.java
import java.rmi.*;
import java.io.*;
public class RMIServer{
public static void main(String[] argv) throws Exception{
StackImp s = new StackImp(10);
Naming.rebind("rmi://localhost:2000/xyz", s);
System.out.println("RMI Server ready....");
System.out.println("Waiting for Request...");
}
}
RMIClient.java
import java.rmi.*;
public class RMIClient{
public static void main(String[] argv)throws Exception{
Stack s = (Stack)Naming.lookup("rmi://localhost:2000/xyz");
s.push(25);
System.out.println("Push: "+s.push());
}
}
JDK1.5を使用しています。ファイルをコンパイルした順序は、最初にStack.javaをコンパイルし、次にStackImp.javaをコンパイルし、次にこのコマンドrmicStackImpを使用しました。これはすべて成功しました。しかし、この方法でレジストリを実行しようとすると、rmiregistery 2000で、コマンドプロンプトに時間がかかりすぎました。何も起こらなかった。私はこれをすべて自宅のPCで行っています。そして、このPCはネットワーク上にありません。このプログラムをうまく機能させるために何をすべきかを教えてください。