Remoting è una delle "arti oscure" della programmazione per un sacco di sviluppatori . In realtà, è facile per gli sviluppatori di passare attraverso tutta una carriera senza preoccuparsi di esso . I dettagli sono piuttosto brutta , ma il succo del discorso è semplice : . Un programma su un computer chiama il codice su un altro computer
Per facilitare la discussione un po ' , il termine "client" si riferisce all'applicazione del programmatore è via di sviluppo, e "server" si riferiscono alla domanda il programmatore comunica con .
uno sguardo a come Java Remoting funziona
I dettagli di scrivere un programma Java che svolge servizi remoti sono oltre la portata di questo articolo, ma i concetti di fondo sono la pena di copertura . Un oggetto remoto è rappresentato da una interfaccia. Lo sviluppatore deve ottenere un'istanza dell'interfaccia e chiamare un metodo su di esso .
Questa chiamata invierà la richiesta al server , che elabora i parametri ( e restituire un risultato , se necessario) . Il processo di invio di oggetti /parametri da e verso il server si chiama " smistamento " , e il processo di prendere i dati di marshalling e tradurre di nuovo utilizzabile oggetti si chiama " unmarshalling " .
Cause
Naturalmente , le cose possono sempre andare male . Forse un programma chiama una funzione che non esiste su un altro computer . Per esempio, se si tenta di chiamare a.foo () utilizzando RMI , e la versione sul computer che stai comunicando con non avere a.foo ( ) definita , le cose si rompono . Un'altra possibilità è che si è verificato un errore del programma server , come ad esempio un problema di connessione al database.
Quando questo accade , si otterrà un RemoteException o una delle sue sottoclassi .
sapori di RemoteException
Ci sono diverse sottoclassi di RemoteException per gestire le varie situazioni che possono verificarsi (vedi la sezione Risorse per un elenco esaustivo delle sottoclassi ) . Per esempio, se si verifica un problema durante smistamento o unmarshalling gli oggetti , una MarshalException o UnmarshalException saranno gettati rispettivamente . Se si verifica un'eccezione che non viene dichiarato in firma il cd del metodo (cioè una eccezione di runtime non selezionato) , un UnexpectedException sarà gettato - questo potrebbe essere un NullPointerException sul lato server , ad esempio
< . br> Manipolazione RemoteException
Mentre medicina generale Java consiglia di prendere l'esempio più specializzata di un'eccezione , questo può essere difficile da raggiungere quando si lavora con RMI . Ci sono troppe possibili eccezioni da considerare quando si esaminano le varie sottoclassi RemoteException che trattare con loro individualmente probabilmente non vale la pena .
Ciò detto, uno sviluppatore può concentrarsi su potenziali aree problematiche che possono essere più o meno evidente durante lo sviluppo . Ad esempio, nel primo tentativo di chiamata metodo remoto (forse in inizializzazione dell'applicazione) , lo sviluppatore può provare a gestire un UnknownHostException in maniera specializzata. Un'altra possibilità potrebbe essere un gestore RemoteException generico che potrebbe intraprendere azioni diverse in virtù di un'eccezione specifica incontrato.
Programmazione © www.354353.com