Cześć, próbuję przesłać strumieniem wynik zapytania SQL który zapisuje pobrane wartości w ObservableList, niestety przy próbie odczytu obiektu przez klienta wyskakuje mi błąd:
writing aborted; java.io.NotSerializableException: com.sun.javafx.collections.ObservableListWrapper
Serwer:
private ObservableList<ObservableList> data;
String SQL = "SELECT * FROM flights";
private void CodePrintFlights(){
data = FXCollections.observableArrayList();
ResultSet rs;
try {
rs = con.createStatement().executeQuery(SQL);
while (rs.next()) {
//Iterate Row
ObservableList row = FXCollections.observableArrayList();
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
//Iterate Column
row.add(rs.getString(i));
}
data.add(row);
}
try {
ObjectOutputStream obj = new ObjectOutputStream(socket.getOutputStream());
obj.writeObject(data);
} catch (IOException e) {
e.printStackTrace();
}
} catch (SQLException ex) {
System.err.println(ex.getMessage());
}
Metoda przesyłająca obiekty w klasie LoginController
ObservableList obj;
public ObservableList ServerDinObject2(){
try {
ObjectInputStream dinObj = new ObjectInputStream(s.getInputStream());
obj = (ObservableList) dinObj.readObject();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
return obj;
}
Klient:
LoginController obj = new LoginController();
obj.ServerDout("PrintFlights");
data = obj.ServerDinObject2();
tblData.getItems().add(data);
Z góry dziękuję za pomoc :)
szatkus