Ich bekomme NotSerializableException seit einiger Zeit. der volle Fehler ist wie dieseGetting NotSerializableException: sun.java2d.SunGraphics2D
java.io.NotSerializableException: sun.java2d.SunGraphics2D
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at SOM_thread1.run(soms1.java:354)
die Fehler auf out.writeObject sind (g); der vollständige Code ist wie folgt
public class soms1 extends JApplet implements Serializable {
/**
*
*/
private static final long serialVersionUID = -743443566771258883L;
// class of weights and samples which performs operations on the SOM
public static Screen screen = new Screen();
// Socket Connection
private static Socket clientSocket = null;
private static PrintStream os = null;
private static BufferedReader inputLine = null;
// thread responsible for updating Screen
static public SOM_thread1 thread = null;
Toolkit tool;
public void init() {
String sentence;
tool = Toolkit.getDefaultToolkit();
try {
clientSocket = new Socket("localhost", 6789);
thread = new SOM_thread1(clientSocket);
setup_applet();
setup_radios();
setup_layout();
screen.init_Screen();
thread.init();
thread.start();
inputLine = new BufferedReader(new InputStreamReader(System.in));
sentence = inputLine.readLine();
if (clientSocket != null && os != null
&& sentence.equals("server:apl")) {
thread.set_state(2);
}
} catch (UnknownHostException e) {
System.err.println(e);
} catch (IOException e) {
System.err.println(e);
}
}
}
class SOM_thread1 extends Thread implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
int state = -1;
int MAX_ITER = 0;
float t;
float T_INC;
private ObjectOutputStream out = null;
private Socket clientSocket = null;
public transient Graphics g = null;
public SOM_thread1(Socket clientSocket) {
this.clientSocket = clientSocket;
}
/*Updates the class Screen according the to values retrieved from the user interface*/
public void run() {
while (true) {
// Send data to server
try {
g = soms1.screen.getGraphics();
out = new ObjectOutputStream(clientSocket.getOutputStream());
out.writeObject(g);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
// Allow other operations
yield();
} // while(true)
}
}
bitte mitteilen, welches Objekt i Dank im Voraus serialisiert werden sollten
Dank Als Vorschlag versuche ich, die Grafikdaten über ein Grafikobjekt an den Server zu senden. Dafür habe ich die Screen.getGraphics() -Methode von sun.java2d.SunGraphics2D verwendet. Bildschirm ist nur eine Anzeige-Methode, die grafische Karte generiert. Ich versuche das jetzt von etwa einer Woche zu lösen – APL
Nun, im Grunde wird das nicht funktionieren. Sie müssen eine andere Möglichkeit finden, die Grafikdaten zu verschlüsseln, damit Sie sie an den Server senden können. –
Kannst du irgendeinen Weg vorschlagen, von dem ich das Objekt vor dem Senden serialisieren kann? – APL