Questa classe qui rappresenta l'implementazione di GreetingService e si trova nel package server del progetto GWT.
codice:
package com.progettonm.server;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.Enumeration;
import java.util.Hashtable;
import com.progettonm.client.GreetingService;
import com.progettonm.server.idclient.IdentificatoreClient;
import com.progettonm.server.infopc.InformazioniPC;
import com.progettonm.server.messaggio.MessTabellaClientDist;
import com.progettonm.shared.FieldVerifier;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
/**
* The server side implementation of the RPC service.
*/
@SuppressWarnings("serial")
public class GreetingServiceImpl extends RemoteServiceServlet implements
GreetingService {
public Hashtable<IdentificatoreClient, InformazioniPC> greetServer() throws IllegalArgumentException {
/*Come prima cosa mi devo collegare al server.*/
/*
* Qui viene creata la socket che permette al cilent amministrativo di
* connettersi al server centralizzato.Lui deve collegarsi alla server Socket con numero di porta 8004 poiche e quella
* la serverSocket addetta all'accettazione delle connessioni da parte dei client amministrativi.
* Il metodo ritorna il numero di porta del client amministrativo,se tale progetto deve funzionare
* su più macchine allora mi farò tornare l'identificatore client, il quale ci è utile nei successvi
* metodo per creare le socket.
*/
/*Va dentro un metodo chiamato selezione scelta.*/
Socket cac=null;
try {
InetSocketAddress indirizzoServer = new InetSocketAddress(
"localhost", 8004);
cac = new Socket();
cac.connect(indirizzoServer);
}
catch (Exception e) {
e.printStackTrace();
}
System.out.println("Connessione con il server creata:");
/*
* Qui vengono presi gli output ed input stream del socket i quali
* servono per mandare informazioni,nel nostro caso messaggi, al
* server.Ecco perchè utilizziamo gli Object stream
*/
ObjectOutputStream outCa=null;
ObjectInputStream inCa=null;
try {
outCa = new ObjectOutputStream(cac.getOutputStream());
inCa= new ObjectInputStream(cac.getInputStream());
}
catch (Exception e) {
e.printStackTrace();
}
System.out.println("Creati gli stream che mi permettono di comunicare con il server.");
/*Devo leggere il la tabella dei distributi dal server e stamparla a video. */
Object messaggioTabellaClientD=null;
try {
messaggioTabellaClientD=inCa.readObject();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
/*Ora controllo se il messaggio ricevuto è il messaggio MessTabellaClientDist che contiene
* la tabella con i client distributi.*/
Hashtable<IdentificatoreClient, InformazioniPC> tabellaDistribuiti=null;
if(messaggioTabellaClientD instanceof MessTabellaClientDist){
MessTabellaClientDist tabellaClientD= (MessTabellaClientDist) messaggioTabellaClientD;
/*Stampo l'hashtable*/
tabellaDistribuiti = tabellaClientD.getHashtableCD();
/*
* qui creo i 2 oggetti Enumeration che contengo le informazioni
* presenti nella tabella*/
Enumeration chiavi = tabellaDistribuiti.keys();
Enumeration informazioni = tabellaDistribuiti.elements();
/*
* Qui stampo a video le informazioni chiave valore della
* tabella*/
while (chiavi.hasMoreElements()
&& informazioni.hasMoreElements()) {
System.out.println("Chiave:"+ (IdentificatoreClient) chiavi.nextElement());
System.out.println("Info:" + informazioni.nextElement());
}
System.out.println("Visualizzazione avvenuta con successo!");
}
return tabellaDistribuiti;
}
}