Boa tarde gente. Estou estudando RMI e não estou conseguindo fazer com que o argumento do servidor, passado via linha de comando, seja reconhecido (eu obtenho a famosa exception ArrayIndexOutOfBounds). Seguem abaixo as classes de teste do servidor e do cliente respectivamente:
package headfirst.proxy.gumball;
import java.rmi.*;
public class GumballMachineTestDrive {
public static void main(String[] args) {
GumballMachineRemote gumballMachine = null;
int count;
if (args.length < 2) {
System.out.println("GumballMachine <name> <inventory>");
System.exit(1);
}
try {
count = Integer.parseInt(args[1]);
gumballMachine =
new GumballMachine(args[0], count);
Naming.rebind("//" + args[0] + "/gumballmachine", gumballMachine);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package headfirst.proxy.gumball;
import java.rmi.*;
public class GumballMonitorTestDrive {
public static void main(String[] args) {
String[] location = {"rmi://santafe.mightygumball.com/gumballmachine",
"rmi://boulder.mightygumball.com/gumballmachine",
"rmi://seattle.mightygumball.com/gumballmachine"};
if (args.length >= 0)
{
location = new String[1];
location[0] = "rmi://" + args[0] + "/gumballmachine";
}
GumballMonitor[] monitor = new GumballMonitor[location.length];
for (int i=0;i < location.length; i++) {
try {
GumballMachineRemote machine =
(GumballMachineRemote) Naming.lookup(location[i]);
monitor[i] = new GumballMonitor(machine);
System.out.println(monitor[i]);
} catch (Exception e) {
e.printStackTrace();
}
}
for(int i=0; i < monitor.length; i++) {
monitor[i].report();
}
}
}
Como vocês podem ver pelo package, são classes do cap. de RMI do livro Design Patterns da HF. Eu executei na linha de comando
E:\Meus documentos\workspace\HF_DP\bin>rmiregistry & java headfirst.proxy.gumball.GumballMachineTestDrive santafe.mightygumball.com 100
e recebi o seguintes erro do console:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at headfirst.proxy.gumball.GumballMonitorTestDrive.main(GumballMonitorTestDrive.java:15)
Agradeço muito pela ajuda.