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

    [Java] Programmazione distribuita

    Premetto che il problema riguarda la programmazione in java rmi. Ho bisogno di esportare un oggetto remoto ritornato come risultato al client, a tal fine la documentazione dice di utilizzare il metodo exportObject(Remote obj).

    Ho provato ad utilizzarlo aggiungendo i seguenti import nella classe:
    java.rmi.*
    java.rmi.server.UnicastRemoteObject
    java.rmi.RemoteStub

    ma il compilatore mi restituisce il seguente errore "cannot resolve symbol" proprio nel metodo exportObject.

    Chi sa come si utilizza il metodo, quale import bisogna utilizzare?
    Due giorni che cerco su java.sun.com e non capisco dove sbaglio....

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,305
    Dovresti postare un po' di codice, altrimenti non sarà possibile, per chi volesse aiutarti, capire dove può essere l'errore. In particolare, posta il blocco di codice dove è inserita l'istruzione che genera l'errore in compilazione (il compilatore ti dice esattamente la riga dove c'è l'errore).


    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
    Ok vi do il codice del client, e lo commento per capirlo meglio:

    package test;

    import java.rmi.*;
    import java.rmi.server.RemoteStub;
    import java.rmi.server.UnicastRemoteObject;

    public class Client{

    public static void main(String[] args) {

    Server obj = null;
    MobileServer ms = null;
    if (System.getSecurityManager() == null) {
    System.setSecurityManager(new RMISecurityManager());
    }
    try {

    String name = "//:2345/Server";
    //Mi collego al server e ricevo la suo referenza remota
    /*Lancio il metodo installa, il quale mi restituisce un oggetto MobileServer, il quale e' un oggetto remote che estende RemoteServer*/
    ms = (MobileServer)obj.installa();
    //Adesso provo ad esportare al registro rmi il server MobileServer ricevuto, ma qui il compilatore mi dice cannot resolve symbol method exportObject
    RemoteStub stub = java.rmi.server.UnicastRemoteObject.exportObject(m s);
    Naming.rebind("MobileServer", stub);
    }
    catch (Exception e) {
    System.out.println("HelloImpl err:");
    e.printStackTrace();
    }
    }
    }

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,305
    Ok... ora, la classe MobileServer implementa l'interfaccia Remote?


    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
    Certamente... e l'implementazione come dicevo estende RemoteServer.
    Cosa significa quel cannot resolve simbol exportObject? Puo' essere che non identifica il metodo exportObject?

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,305
    A questo punto mi arrendo.
    Il messaggio d'errore "Cannot resolve symbol" significa che non riesce a trovare l'oggetto o il metodo che stai utilizzando. In questo caso, quindi, significa che non riesce a trovare il metodo exportObject() il che mi sembra alquanto strano, dato che la documentazione lo riporta esattamente come tu lo utilizzi: statico, con un parametro di tipo Remote.


    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

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