|
|
|
![]() |
|
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 09: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 16: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 14: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: 10:56.