クライアント セッションを終了すると EOFException がスローされますが、これは正常であると読んだので、同じ機能を持つ新しいスレッドを開始しますが、値は Restaurant=null; です。私は.txtファイルに書きましたが
public void run(){
try {
ois= new ObjectInputStream(clientside.getInputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
oos = new ObjectOutputStream(clientside.getOutputStream());
} catch (IOException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
handlerequest(ois,oos);// exit();
}
私のリクエスト ハンドラのコードが必要だとは思わないので、コード スパムを減らすために添付しません。以下を呼び出すメソッドは requesthandler です
String tempRestaurant=null;
try {
fr = new FileReader("Restaurant.txt");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
fr.read(cbuf);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
tempRestaurant=String.valueOf(cbuf);
System.out.println(tempRestaurant);
try {
oos.writeObject(tempRestaurant);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
より多くの情報コードなどが必要な場合は、pls の書き込みをお待ちしております:) これは、クライアントを終了した後にスローされる以下の例外です。
java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at prealphaserverpackage.clientsidethreads.setRestaurant(Serverpart.java:164)
at prealphaserverpackage.clientsidethreads.handlerequest(Serverpart.java:205)
at prealphaserverpackage.clientsidethreads.run(Serverpart.java:96)
Exception in thread "Thread-3" java.lang.NullPointerException
at java.io.PrintWriter.write(Unknown Source)
at prealphaserverpackage.clientsidethreads.setRestaurant(Serverpart.java:177)
at prealphaserverpackage.clientsidethreads.handlerequest(Serverpart.java:205)
at prealphaserverpackage.clientsidethreads.run(Serverpart.java:96)
あなたのコードを知っていることを追加しましたが、EOFExceptionがスローされた後もレストランはnullです...