PDA

Visualizza la versione completa : [Java] Programmazione distribuita


andre82
16-02-2005, 11:48
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.... :dh:

LeleFT
16-02-2005, 11:52
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. :ciauz:

andre82
16-02-2005, 11:59
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();
}
}
}

LeleFT
16-02-2005, 12:03
Ok... ora, la classe MobileServer implementa l'interfaccia Remote?


Ciao. :ciauz:

andre82
16-02-2005, 12:06
Certamente... e l'implementazione come dicevo estende RemoteServer.
Cosa significa quel cannot resolve simbol exportObject? Puo' essere che non identifica il metodo exportObject?

LeleFT
16-02-2005, 12:12
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. :ciauz:

Loading