import java.rmi.*;
import java.net.*;
import java.math.BigInteger;
public class FibonacciClient {
public static void main(String args[]) {
if (args.length == 0 || !args[0].startsWith("rmi:")) {
System.err.println(
"Usage: java Fibonacci client rmi://host.domain:port/fibonacci number");
return;
}
try {
Object o = Naming.lookup(args[0]);
Fibonacci calculator = (Fibonacci) o;
for (int i = 1; i < args.length; i++) {
try {
BigInteger index = new BigInteger(args[i]);
BigInteger f = calculator.getFibonacci(index);
System.out.println("The " + args[i] + "th Fibonacci number is "
+ f);
}
catch (NumberFormatException e) {
System.err.println(args[i] + "is not an integer.");
}
}
}
catch (MalformedURLException e) {
System.err.println(args[0] + " is not a valid RMI URL");
}
catch (RemoteException e) {
System.err.println("Remote object threw exception " + e);
}
catch (NotBoundException e) {
System.err.println(
"Could not find the requested remote object on the server");
}
}
}
|