|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 36
|
[JAVA + RMI] Usare servizi di dynamic ip
Salve a tutti, volevo sapere come muovermi (sempre se è possibile) sui binari (magari fossero quelli di un treno
Queste sono le prove da me fatte in pratica, nel server al momento che faccio la rebind faccio nomalmente Codice:
Naming.rebind("Server", m);
Codice:
Naming.lookup("rmi://indirizzo.no-ip.info/Server");
Quale può essere il problema? ps il file di policy è Codice:
grant {
permission java.security.AllPermission;
};
Ultima modifica di kawasaidleon : 17-02-2010 alle 10:07. Motivo: volevo una notifica istantanea :D |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
se il server è dietro router, devi operare il forward la porta 1099 e la 80. In alternativa ponilo in DMZ
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 36
|
Non c'è qualcosa di più semplice, magari anche un altro servizio analogo (e magari anche free)?
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
in che senso?il problema non dipende dal ddns, ma dalla rete in cui il server si trova.
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 36
|
il server è sotto fastweb... Non c'è qualche servizio che funziona "sempre" senza dipendere da nulla?
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
con fastweb non può funzionare in alcun modo, in quanto nessuna porta è raggiungibile.
|
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 36
|
bene. ti ringrazio....
ps, già che ci troviamo, ma neanche un controllo remoto funzionerebbe? |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
no, a patto di utilizza himachi
|
|
|
|
|
|
#9 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 36
|
e non posso usare hamachi con rmi??
provando il client lancia come eccezione GRAVE: Errore! Connection refused to host: 10.0.2.15; nested exception is: java.net.ConnectException: Connection refused |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
non non puoi con rmi.
Prima di utilizzare rmi dovresti un minimo cercare di capire come funziona. Inoltre l' indirizzo 10.0.2.15 è di utilizzo privato. Ultima modifica di nuovoUtente86 : 17-02-2010 alle 17:52. |
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 36
|
Allora, di rmi un pò ne so, o meglio l'architettura la conosco, nella pratica ho sempre usato client e server sulla stessa macchina
Per esempio, come prova ho il server Codice:
public class Server extends UnicastRemoteObject implements IServer {
public String hello(String daChi) throws RemoteException {
System.out.println("Richiesta da " + daChi);
return "Ciao " + daChi + " io sono il server";
}
public Server() throws RemoteException {}
public static void main (String [] args) {
System.setSecurityManager(new RMISecurityManager());
try {
String url = "/server";
System.out.print("bind all' " + url +"... ");
Naming.bind(url, new Server());
System.out.println("ok!");
} catch (Exception ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Codice:
public interface IServer extends Remote {
public String hello(String daChi) throws RemoteException;
}
Codice:
public class Client {
public static void main (String [] args) {
Registry registry = null;
try {
String url = "rmi://" + args[0] + "/server";
System.out.println(url);
System.out.print("getregistry from " + args[0] + " ... ");
registry = LocateRegistry.getRegistry(args[0], 1099);
System.out.println("ok");
IServer server = (IServer) registry.lookup(url);
System.out.println(server.hello("client"));
} catch (Exception ex) {
System.err.println("errore: " + ex.getMessage());
ex.printStackTrace();
}
}
}
Codice:
grant {
permission java.security.AllPermission;
};
con rmic compilo lo stub del server Codice:
rmic Server lancio il server includendo il file di policy e specifico l'ip del server Codice:
java -Djava.security.policy=policyall Server 192.168.0.2 lancio il client Codice:
java Client 192.168.0.2 Codice:
errore: connection failed to host: 127.0.0.1; nested exception is: java.net.ConnectException: Connessione rifiutata java.rmi.RemoteException: connection failed to host: 127.0.0.1; nested exception is: java.net.ConnectException: Connessione rifiutata at gnu.java.rmi.server.UnicastRef.invokeCommon(libgcj.so.90) at gnu.java.rmi.server.UnicastRef.invoke(libgcj.so.90) at Server_Stub.hello(Unknown Source) at Client.main(Client.java:31) Caused by: java.net.ConnectException: Connessione rifiutata at gnu.java.net.PlainSocketImpl.connect(libgcj.so.90) at java.net.Socket.connect(libgcj.so.90) at java.net.Socket.connect(libgcj.so.90) at java.net.Socket.<init>(libgcj.so.90) at java.net.Socket.<init>(libgcj.so.90) at gnu.java.rmi.server.RMIDefaultSocketFactory.createSocket(libgcj.so.90) at gnu.java.rmi.server.UnicastConnectionManager.getClientConnection(libgcj.so.90) at gnu.java.rmi.server.UnicastConnectionManager.getConnection(libgcj.so.90) at gnu.java.rmi.server.UnicastRef.invokeCommon(libgcj.so.90) ...3 more Ultima modifica di kawasaidleon : 18-02-2010 alle 15:41. |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
Innanzitutto dalla versione 5 non è necessario generare skeleton e stub in quanto la jvm li tratta in automatico attraverso dinamic proxy, e le devi consiserare classi normali.
Inoltre deve settare la sicurezza anche sul client e sul Server settare l' url come "server" e non "/server". |
|
|
|
|
|
#13 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 36
|
Intendi dire un System.setSecurityManager(new RMISecurityManager()); sul client e anche avviare in programma usando il file di policy? Ho provato sia solo con il setsecuritymanager che con entrambi, non funziona in nessun caso
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
si questo lo devi fare ed inoltre devi cambiare l' url sul server.
|
|
|
|
|
|
#15 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 36
|
fatto, ma lancia la medesima eccezione....
vuoi che ti passo le classi e mi fai vedere qual'è il problema? |
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
stai per caso utilizzando i package?
|
|
|
|
|
|
#17 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 36
|
Si, ma in locale funziona, quindi ... non so
|
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
e ora dove lo stai testando?
|
|
|
|
|
|
#19 |
|
Member
Iscritto dal: Oct 2006
Messaggi: 36
|
in lan
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:50.




















