Si verifica l'eccezione del titolo alla riga indicata nel commento del codice
codice:
package jcallremember.server;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import jcallremember.libreria.Credenziali;
import jcallremember.libreria.Operazioni;
import jcallremember.libreria.ClienteDB;
/**
*
* @author Pasquale Caloriger
* Questa Classe implementa un thread Server che fornisce servizi al client
*/
public class ServerWorker implements Runnable{
private final Socket socket;
private final Thread worker;
private Credenziali login;
private final InputStream is;
private final OutputStream os;
public ServerWorker(Socket socket) throws IOException{
this.socket=socket;
this.worker=new Thread(this);
this.is=this.socket.getInputStream();
this.os=this.socket.getOutputStream();
}
public void start(){
this.worker.start();
}
@Override
public void run() {
//Nella prima fase il thread worker legge i dati di login che il client
//invia
if (socket.isConnected()) {
try {
ObjectInputStream ois = new ObjectInputStream(is);
//legge l'oggetto Credenziali inviato dal client
this.login=(Credenziali)ois.readObject();
ObjectOutputStream oos=new ObjectOutputStream(this.os);
//invia al client true se il login è corretto , false
//altrimenti
oos.writeBoolean(Database.getInstance().isLoginCorrect(login));
oos.flush();
//si mette in attesa di richieste da parte del client
while(true){
//aspetto di leggere un oggetto Operazioni(enum)
Operazioni op=(Operazioni)ois.readObject(); //si verifica l'eccezione
switch(op){
case INSERIMENTO:
ClienteDB cliente=(ClienteDB)ois.readObject();
Boolean isOk=Database.getInstance().insertCliente(cliente,
login.getUsername());
oos.writeBoolean(isOk);
oos.flush();
break;
case DOWNLOAD:
Object [][] appuntamenti=Database.getInstance().
downloadAppuntamentiOperatore(this.login);
oos.writeObject(appuntamenti);
oos.flush();
break;
}
}
} catch (IOException | ClassNotFoundException | SQLException ex) {
Logger.getLogger(ServerWorker.class.getName()).
log(Level.SEVERE, null, ex);
}
}
}
}