gpt4 book ai didi

sendRedirect() 和 ObjectOutputStream 之间的 java.io.EOFException

转载 作者:行者123 更新时间:2023-12-01 23:39:59 26 4
gpt4 key购买 nike

问题是,当我尝试执行 ois = new ObjectInputStream(request.getInputStream()); 时,它会在服务器端启动 java.io.EOFException

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;

最佳答案

对象流具有特定的格式,如果您正在阅读不符合该格式的内容,您很容易将其混淆。使用这种类型的流写入/读取的每种类型的数据都有一个标记,如果该标记与预期不匹配,则抛出的异常是 EOFException。在我看来,这很令人困惑,因为它可以在不同的上下文中抛出 StreamCorruptedException,这会更合适。

简而言之,您正在尝试读取不是 ObjectInputStream 的内容,或者您​​正在读取的数据类型不正确,或者数据已损坏。

关于sendRedirect() 和 ObjectOutputStream 之间的 java.io.EOFException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18113667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com