Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Problema RMI

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    44

    Problema RMI

    Ciao a tutti e ho l'ennesimo problema con Java.
    Premessa : il sorgente non dovrebbe avere problemi visto che se provo l'applicazione sulla rete della mia università va tutto mentre,purtroppo,a casa no.Ipotizzo quindi che servano delle impostazioni al registry RMI.
    Cmq la situazione è questa:
    ho un router che fa da server dhcp per gli host che si connettono.
    L'ip del router è 192.168.1.1 e ai 2 host connessi vengono assegnati IP a partire dall'indirizzo 192.168.1.100.
    Il primo host è quello che utilizzo come server per la mia applicazione : c'è installata suse 9.3 e ha IP 192.168.1.101.
    Il firewall permette l'accesso alle porte 1099 (per rmiregistry) e 2000 (per le invocazioni di metodi da remoto).
    Inizialmente java 1.6 non era installata.L'ho installata e ho creato dei soft link per farla andare solamente per i comandi javac,java e rmiregistry (non credo che ne servano altri..giusto?)..cmq ora come digito java -version ottengo 1.6.
    L'altro host è quello che utilizzo come client : ha IP 192.168.1.100 e c'è installato ubuntu 8.4 con java 1.6.
    I 2 host si vedono (il comando ping dà esito positivo) e anche inizialmente l'applicazione funziona.Dico inizialmente perchè tutto funziona fino a quando il client non esegue il primo metodo remoto.
    Il risultato è una ConnectException :
    codice:
    Errore Client : java.rmi.ConnectException: Connection refused to host: 127.0.0.2; nested exception
    is:
            java.net.ConnectException: Connection refused
    java.rmi.ConnectException: Connection refused to host: 127.0.0.2; nested exception is:
            java.net.ConnectException: Connection refused
            at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)
            at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
            at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
            at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:110)
            at
    java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHa
    ndler.java:178)
            at
    java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132)
            at $Proxy0.vota(Unknown Source)
            at ClienVotazioni.main(ClienVotazioni.java:15)
    Caused by: java.net.ConnectException: Connection refused
            at java.net.PlainSocketImpl.socketConnect(Native Method)
            at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
            at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
            at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
            at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
            at java.net.Socket.connect(Socket.java:518)
            at java.net.Socket.connect(Socket.java:468)
            at java.net.Socket.<init>(Socket.java:365)
            at java.net.Socket.<init>(Socket.java:179)
            at
    sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
            at
    sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
            at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
            ... 7 more
    make[1]: Leaving directory `/home/bande/workspace/Applicazioni_Java/LPR/RMIClient'
    Con wireshark ho visto che i 2 host si scambiano pk RMI e ho anche visto che forse il problema sono le informazioni che il server passa al client per fare in modo che si connetta per invocare metodi da remoto.Infatti il server come risposta RMI passa al client l'IP 127.0.0.2 e non il suo (192.168.1.101) ottenendo l'eccezione sopra : il client infatti tenta di stabilire una connessione con 127.0.0.2 ma ovviamente non può.Come risolvo questo problema?..c'è un modo che per settare l'IP in modo che il server passi 192.168.1.101 e non 127.0.0.2?
    Grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537

    Re: Problema RMI

    Originariamente inviato da kill9
    Con wireshark ho visto che i 2 host si scambiano pk RMI e ho anche visto che forse il problema sono le informazioni che il server passa al client per fare in modo che si connetta per invocare metodi da remoto.Infatti il server come risposta RMI passa al client l'IP 127.0.0.2 e non il suo (192.168.1.101) ottenendo l'eccezione sopra : il client infatti tenta di stabilire una connessione con 127.0.0.2 ma ovviamente non può.Come risolvo questo problema?..c'è un modo che per settare l'IP in modo che il server passi 192.168.1.101 e non 127.0.0.2?
    Grazie in anticipo.
    Come recuperi l'ip sul server e lo mandi?
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    44
    L'ip so che è quello perchè se digito ifconfig da root sul server ottengo 192.168.1.101 per la data interfaccia che sto utilizzando.Per quanto riguarda l'invio ci pensa l'implementazione di RMI quando eseguo la exportObject..o almeno credo.Cercavo appunto un modo per dirlo in modo esplicito per vedere di risolvere il problema.

  4. #4
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Nel server farai appunto un export object con all'interno dell'oggetto il tuo ip....beh....imposta quello.
    Se puoi prendi il server java ed inizia con system.out.println(). per cercare il punto da modificare o da sistemare
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    44
    ..non credo sia possibile con la nuova versione di RMI..cioè quella di java 1.6..o almeno in teoria non si dovrebbe.
    In questa versione,rispetto a quella vecchia,ci sono delle modifiche : in particolare non si deve (sempre in teoria) passare esplicitamente le info al client ma dovrebbe crearle da sè il supporto (per capirci : lo stub non viene generato tramite rmic).

  6. #6
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Allora non so....mi sa che ho confuso RMI con altro...scusa...
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    44
    Ho finalmente risolto..cmq grazie a tutti.
    Il problema era che RMI prende come indirizzo IP da mettere nello stub quello associato al nome del pc.Per fare in modo che sia lo stesso associato all'interfaccia in uso è sufficiente modificare l'indirizzo del pc rendendolo uguale a quello dell'interfaccia utilizzata.
    In questo modo tutto funziona.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.