Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Applicazione Java

    Ho le seguenti 3 classi:


    IsquareRoot.java

    import java.rmi.Remote;
    import java.rmi.RemoteException;

    //*****INTERFACCIA REMOTA*****

    public interface ISquareRoot extends Remote
    {
    double calculateSquareRoot(double aNumber) throws RemoteException;



    RMISquareRootClient

    import java.rmi.Naming;
    import java.rmi.NotBoundException;
    import java.rmi.RemoteException;
    import java.net.MalformedURLException;

    //*****APPLICAZIONE CLIENT*****

    public class RMISquareRootClient
    {
    public static void main(String[] args) {
    int x = Integer.parseInt(args[0]);

    try
    {
    ISquareRoot squareServer =
    (ISquareRoot) Naming.lookup ("rmi://localhost/RMISquareRoot");

    double result = squareServer.calculateSquareRoot(x) ;
    System.out.println(result);
    }
    catch(NotBoundException e)
    {
    e.printStackTrace( );
    }
    catch(RemoteException e)
    {
    e.printStackTrace( );
    }
    catch(MalformedURLException e)
    {
    e.printStackTrace( );
    }
    }
    }



    RMISquareRootServer

    import java.net.MalformedURLException;
    import java.rmi.server.UnicastRemoteObject;
    import java.rmi.Naming;
    import java.rmi.RemoteException;

    //*****APPLICAZIONE SERVER*****

    public class RMISquareRootServer extends UnicastRemoteObject
    implements ISquareRoot
    {
    public RMISquareRootServer()throws RemoteException
    {

    }

    public double calculateSquareRoot(double aNumber)
    {
    return Math.sqrt(aNumber);
    }

    public static void main(String[] args)
    {
    try
    {
    ISquareRoot server = new RMISquareRootServer();
    Naming.rebind("//localhost/RMISquareRoot",server);
    }
    catch (RemoteException e){e.printStackTrace( );}
    catch (MalformedURLException e) {e.printStackTrace( );}
    }
    }

    ***********************************

    Per poter eseguire l'applicazione è necessario aprire 3 finestre di Prompt dei Comandi e procedere nell'ordine seguente:

    1) Avviare il Java RMI registry attraverso il comando: rmiregistry
    2) Eseguire il server attraverso il comando: java RMISquareRootServer
    3) Eseguire il client attraverso il comando: java RMIClientRootServer 576


    Potresti scrivermi il contenuto dei 3 file batch per poter eseguire l'applicazione?
    grazie

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

    Moderazione

    Il titolo dovrebbe essere esplicativo dell'argomento trattato.
    Dato che il 99% delle discussioni in questo forum riguardano Applicazioni Java, direi che non aiuta il tuo titolo.

    Lo modifico io.


    PS: Io non ho capito se la discussione riguarda Java o uno script BATCH.


    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

  3. #3
    Ti ringrazio per la modifica al titolo....in effetti il mio era veramente banale...

    il mio problema sta nel fatto che non riesco a scrivere correttamente i 3file batch per poter eseguire le classi java elencate che hanno la funzione di eseguire la radice quadrata di un numero mostrando il meccanismo di funzionamento RMI.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Beh... è sufficiente riportare il comando tale e quale a come lo scrivi nel prompt.
    Se vuoi, puoi anche ricamarci sopra:
    codice:
    @ECHO OFF
    CD <percorso_alla_directory_dell'applicazione>
    rmiregistry
    codice:
    @ECHO OFF
    CD <percorso_alla_directory_dell'applicazione>
    java RMISquareRootServer
    codice:
    @ECHO OFF
    CD <percorso_alla_directory_dell'applicazione>
    java RMIClientRootServer 576
    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

  5. #5
    esatto, anche io ho avevo fatto come suggerito da te ma quando eseguo il primo batch, mi viene restituito l'errore: Exception in thread "main" java.lang.NoClassDefFoundError: rmiregistry

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    mi mangio il cappello se nel primo batch tu non hai

    java rmiregistry

    il che non ha senso, visto che rmiregistry è un eseguibile che trovi nel jdk
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    tranquillo non ti mangerai il cappello

    nel batch sopra non è indicato ma l'ho messo...

    dove sta quindi il problema?

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    il primo batch deve semplicemente avviare rmiregistry. Io ce l'ho in PATH per cui dovunque mi trovi mi basta fare rmiregistry per avviarlo. Semplicemente, sostituisci il tuo primo batch con quello che ti ha postato Lele e tutto andrà a meraviglia (sempre che come me anche tu abbia rmiregistry nel PATH)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Il mio problema è il seguente:
    prima di eseguire l'rmiregistry devo creare le classi stub e skeleton. pensavo si generassero in automatico ma ciò avviene solo dalla versione 1.5 della j2se....io ho una versione precedente quindi devo generarle con l'rmic ma mi da problemi.
    Dopo aver compilato le classi in questo modo, in un file batch:

    path=c:\Programmi\j2sdk_nb\j2sdk1.4.2\bin;
    C:\Documents and Settings\Administrator\Desktop\Registry\Esempi\Rad ice Quadrata;

    javac *.java


    lancio un'altro batch con i seguenti comandi:

    path=C:\Programmi\j2sdk_nb\j2sdk1.4.2\bin;
    C:\Documents and Settings\Administrator\Desktop\Registry\Esempi\Rad ice Quadrata;

    rmic RMISquareRootServer



    ma facendo cosi genera una shell con loop infinito...dove sbaglio?

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.