objectOutputStreamhere
と!の使用の競合を解決する解決策はありsendRedirect()
ますか?
private void writeObjectStream(HttpServletRequest request,
HttpServletResponse response) {
getQueryFromAttribute(request);
ObjectOutputStream oos = null;
try {
oos = new ObjectOutputStream(response.getOutputStream());
oos.writeObject(appInfo);
oos.writeObject(serviceInfo);
oos.writeObject(queriesMap);
response.reset();
} catch (IOException e) {
e.printStackTrace();
} finally {
IOUtil.closeQuietly(oos);
}
}
そしてここで私はそれを呼びますwriteObjectStream
writeObjectStream(request, response);
try {
response.sendRedirect(response.encodeRedirectURL(appInfo.getUrl()));
} catch (IOException e) {
e.printStackTrace();
}
次のように、この問題の他の解決策を試しました:
private void writeObjectStream(HttpServletRequest request,
HttpServletResponse response) {
ObjectOutputStream oos = null;
try {
oos = new ObjectOutputStream(response.getOutputStream());
oos.writeChars("x");
} catch (IOException e) {
e.printStackTrace();
} finally {
IOUtil.closeQuietly(oos, ois);
}
}
の呼び出しwriteObjectStream
:
....
response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
response.setHeader("Location", "www.sample.com");
response.setHeader("Content-Length", "" + 500);
writeObjectStream(request, response);
return true;
}
このソリューションの問題は、 java.io.EOFException
実行しようとするとサーバー側で起動することです ois = new ObjectInputStream(request.getInputStream());