Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: [java] Prova Rmi

  1. #1

    [java] Prova Rmi

    Ciao a tutti eccomi per un'altro problemino:
    sto cercando di mettere su un esempio di applicazione Java RMI.
    Ho creato sia il server che l'interfaccia però quando mando in esecuzione il tutto mi dà quest'errore:

    SERVERMI.main(): errore di rete: java.rmi.StubNotFoundException: Stub class not found: mio.SERVERMI_Stub; nested exception is:
    java.lang.ClassNotFoundException: mio.SERVERMI_Stub

    Ma perchè farà riferimento ad un errore mio.SERVERMI_Stub?
    Eppure non gli ho fatto nessuna chiamata da un client.
    Ciaooooo

  2. #2
    devi creare stub e skeleton dell'oggetto remoto.. (da java 1.5 non dovrebbe più servire ma ora si), quindi fai
    rmic oggettoremoto (cioè l'oggetto che implementa l'interfaccia)
    if u think u'r too small to make a difference, try sleeping with a mosquito!!

    Giochi a calcetto? Vuoi prenotare online il tuo campo preferito?

  3. #3
    Questo è il mio codice lato server che ho messo sul mio ipotetico server insieme all'interfaccia(perchè l'interfaccia deve essere sul server o mi sbaglio?):

    import java.net.MalformedURLException;
    import java.rmi.*;
    import java.rmi.server.*;

    public class SERVERMI extends UnicastRemoteObject implements InterfacciaRMI {

    public SERVERMI() throws RemoteException {
    super();
    }

    public String getMessage() throws RemoteException {
    return "Hello World!";
    }

    public static void main(String[] args) {
    try {
    SERVERMI helloWorldObject = new SERVERMI();

    Naming.rebind( "InterfacciaRMI", helloWorldObject );
    System.out.println("SERVERMI.main(): Server pronto");


    } catch( MalformedURLException mue ) {
    System.err.println("SERVERMI.main(): nome dell'oggetto non valido: " + mue);
    } catch( UnknownHostException uhe ) {
    System.err.println("SERVERMI.main(): host sconosciuto: " + uhe);
    } catch( RemoteException re ) {
    System.err.println("SERVERMI.main(): errore di rete: " + re);
    }
    }
    }


    però mi chiedo lo stub e lo skeleton come li devo inglobare nel mio codice : il tuo suggerimento lo devo inserire nel codice di sopra ? e cdove precisamente?

    Grazieeeee :master:

  4. #4
    era chiaro che dovevo essere + chiaro perdonami..

    una volta compilato tutto.. cioè
    javac InterfacciaRMI.java
    javac SERVERRMI.java
    lancia (sempre da riga di comando):
    rmic InterfacciaRMI
    in questo modo il compilatore ti creerà due file:
    InterfacciaRMI.Stub
    InterfacciaRMI.Skeleton
    che servono a server e client per comunicare..
    spero di esser stato chiaro sta volta.
    fai sapere
    if u think u'r too small to make a difference, try sleeping with a mosquito!!

    Giochi a calcetto? Vuoi prenotare online il tuo campo preferito?

  5. #5
    Ciao ho compilato InterfacciaRMI ed è tutto ok;
    ma se compilo la SERVERMI mi dà errore sulla riga dove faccio "class SERVERMI extends UnicastRemoteObject implements InterfacciaRMI" segnalandomi in particolare InterfacciaRMI
    Secondo te perchè ?
    A me sembra di capire come se SRVERMI fosse visto nel package(mio) e invece InterfacciRMI no.
    Ti invio il mio sorgente del server (SERVERMI);volevo ricordarti che comunque sto usando JBUILDER per scrivere il codice però ho comunque compilato come tu mi hai suggerito con javac.Questo il codice


    package mio;

    /**
    *

    Title: </p>
    *

    Description: </p>
    *

    Copyright: Copyright (c) 2004</p>
    *

    Company: </p>
    * @author not attributable
    * @version 1.0
    */

    import java.net.MalformedURLException;
    import java.rmi.*;
    import java.rmi.server.*;


    class SERVERMI extends UnicastRemoteObject implements InterfacciaRMI
    {
    public SERVERMI() throws RemoteException {
    super();
    }


    public String getMessaggio(String s) throws RemoteException {
    return "Prova";
    }


    public static void main(String[] args){

    try{

    SERVERMI server = new SERVERMI();
    Naming.rebind("InterfacciaRMI",server);

    System.out.print("Server avviato");

    }catch(MalformedURLException mue){
    System.out .print(mue);
    }catch(UnknownHostException uhe){
    System.out .print(uhe);
    }catch(RemoteException re){
    System.out .print(re);

    }
    }
    }


    Ciaooo

  6. #6
    Ho riprovato ed è tutto ok : non riuscivo perchè ,come da tuo suggerimento avevo fatto rmic InterfacciaRMI invece era rmic SERVERMI, cioè rmic andava con la classe e non con l'interfaccia.Sono riuscito a creare come mi avevi indicato sia skeleton che stub solo che c'è un'altro problemino: cioè se avvio java SERVERMI.java mi dà un errore :
    Exception un thread "main" java.lang.NoClassDefFoundError : SERVERMI/java

    cosa può essere ?

  7. #7
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao. Ti volevo dire che utilizzando JBuilder puoi direttamente far generare stu e skeleton; infatti basta che laddove c'è la classe sulla parte sinistra ( in cui ci sono package e classi ), tu vada sulla classe da cui vuoi far generare stub e skeleton--> tasto destro del mouse --> properties ti esce una finestra con su scritto "Build" in cui puoi scegliere se creare stub e skeleton,, cliccando su RMI, oppure un file .h cliccando su JNI per metodi nativi.Ti allego una immagine della finestra che dovrebbe uscirti.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  8. #8
    Originariamente inviato da global_napoli
    Ho riprovato ed è tutto ok : non riuscivo perchè ,come da tuo suggerimento avevo fatto rmic InterfacciaRMI invece era rmic SERVERMI, cioè rmic andava con la classe e non con l'interfaccia.Sono riuscito a creare come mi avevi indicato sia skeleton che stub solo che c'è un'altro problemino: cioè se avvio java SERVERMI.java mi dà un errore :
    Exception un thread "main" java.lang.NoClassDefFoundError : SERVERMI/java

    cosa può essere ?
    bah doveva essere l'interfaccia comuqnue se funziona... ma hai lanciato java SERVERMI e NON java SERVERMI.java vero?
    if u think u'r too small to make a difference, try sleeping with a mosquito!!

    Giochi a calcetto? Vuoi prenotare online il tuo campo preferito?

  9. #9
    Ciao : ho digitato java SERVERMI.java però mi dà l'errore che ti
    dicevo: cosa potrebbe essere?

    Byee :quote:

  10. #10
    rileggi bene ciò che ti ho scritto..
    NON java SERVERMI.java vero??????????

    intendevo..
    devi digitare java SERVERMI e basta! senza .java
    if u think u'r too small to make a difference, try sleeping with a mosquito!!

    Giochi a calcetto? Vuoi prenotare online il tuo campo preferito?

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.