Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    4

    Rmi runnable

    Ciao,
    vorrei un aiuto per risolvere il seguente problema che mi sta tormentando......
    Ho scritto un'applicazione java/rmi,quindi un server e un client che girano su macchine differenti con diverse JVM....il client carica una classe del server attraverso codebase e la manda in esecuzione attraverso il metodo run,però devo passare una paramentro di tipo String alla classe caricata.....Il metodo run non accetta parametri...trovate il codice qui di seguito.Grazie in anticipo dell'aiuto.

    SERVER
    public class Inizio extends JFrame implements Runnable,Serializable{
    public void run(){
    Finestra1();
    }

    public void Finestra1(){
    //codice visualizzazione JFrame
    }


    CLIENT
    public class ClientProva{
    static final String codebase="file:///home/server/";
    static final String classe="Inizio";

    public static void main(String[] args) throws Exception{
    try{
    if (System.getSecurityManager() == null)
    System.setSecurityManager(new RMISecurityManager());

    Class classeClient=RMIClassLoader.loadClass(codebase,cla sse);
    Runnable client=(Runnable)classeClient.newInstance();
    client.run();
    }catch(Exception exp){exp.getMessage();}
    }
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Ti puoi fare un metodo setParameter(Object[] parametri) nella classe caricata che usi per settare tutti i parametri che ti servono e poi chiamarlo prima del run.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    4
    ho già provato così....ma essendo i due programmi su host diversi il client non vede il metodo getParameter della classe caricata....se intendevi qualcosa di diverso per favore posta un pezzo di codice in modo che possa capire...grazie per la gentilezza

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Aspetta, forse sono io che ho capito male,prima ti faccio qualche domanda.
    La classe del Server l'hai scritta tu, vero?
    Perche' devi passargli una stringa?
    Abbi pazienza, ma non vorrei dirti cavolate, quindi guardo prima di aver compreso bene il tuo problema.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    4
    allora,innanzitutto ti anticipo che questo è un progetto che dobbiamo fare per l'università...cmq si,il server l'ho scritto io e lo scopo del progetto è che il client contenga una sola classe e poi si carichi attraverso bootstrap tutte le altre classi.
    La stringa da passare è il nome dell'host su cui fare la lookup...quindi il client quando lancia sulla sua macchina l'applicazione deve specificare il nome dell'host server e poi questa stringa deve essere passata direttamente dal programma...spero di essermi spiegato..se hai altre domande fai pure...intanto grazie...

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326

    Moderazione

    Ho modificato il titolo per renderlo conforme al regolamento.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Senti, se puoi agire sia sul client che sul server ti spiego cosa intendevo prima, poi valuti se fa al caso tuo.Cambio anche il metodo tanto ti serve una stringa sola da quanto ho capito.

    codice:
    public interface MyRunnable extends Runnable {
       public void setHost(String hostName);
    }
    
    public class Inizio extends JFrame implements MyRunnable,Serializable{
       private String hostName = null;
    
       public void run(){
          Finestra1();
       }
    
       public void Finestra1(){
          //codice visualizzazione JFrame
       }
       
       public void setHost(String hostName) {
          this.hostName = hostName;
       }
    }
    
    
    CLIENT
    public class ClientProva{
       static final String codebase="file:///home/server/";
       static final String classe="Inizio";
    
       public static void main(String[] args) throws Exception{
          try{
             if (System.getSecurityManager() == null)
                System.setSecurityManager(new RMISecurityManager());
    
             Class classeClient=RMIClassLoader.loadClass(codebase,classe);
             MyRunnable client=(MyRunnable)classeClient.newInstance();
             client.setHost(LA TUA STRINGA);
             client.run();
          }catch(Exception exp){exp.getMessage();}
       }
    }

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    4
    in effetti così mi torna...io avevo fatto una cosa simile ma leggermente diversa e non mi passava la compilazione....grazie a tutti in particolare a simo...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.