Ho un server che si trova all'interno della mia lan ma quando l'ho lanciato, tra le proprietà del descrittore del gruppo di attivazione ho inserito anche il "java.rmi.server.hostname". In pratica ho associato il mio indirizzo IP ESTERNO alla lan ad un hostname di nome "yuhuu.no-ip.org". Quando lancio l'rmid e il server funziona tutto.
Quando però mi ritrovo a lanciare il client fuori dalla lan, mi dà una ClassNotFoundException quindi chiaramente è sbagliato l'URL del codebase. Vi riporto qui il codice del mio client minimale:
public class URLClientBootstrap{
//Codebase da cui caricare la classe Client
static final String codebase = "http://yuhuu.no-ip.org:1098/public_html/common/";
//qui va messa l'area condivisa da cui caricare il client.
static final String clientClass = "agenziamatr.AutClient";
public static void main(String[] args) throws Exception{
System.setSecurityManager(new SecurityManager());
Class cl = RMIClassLoader.loadClass(codebase,clientClass);
Runnable client = (Runnable)cl.newInstance();
client.run();
}
}
Qual é l'URL giusto? Come fa il client a sapere in quale pc andare all'interno della mia lan?