我正在使用客户端测试我的Java servlet(部署在Glassfish 4上)。我的servlet返回一个二进制流,它可能非常大(取决于请求)。
由于我的计算结果,处理请求需要一些时间。问题是这样的:因为客户端在适当的时候没有得到响应,他发送了一个额外的请求来搞砸我的servlet;我得到IllegalStateExceptions,因为它写入流并尝试发送错误。我如何告诉客户我成功收到了他的请求,但他必须等一下?而不将实际数据写入流?我只能一举得到数据,为此不能缓冲。
例如,将零字节数组写入输出流是否有意义? 是否有HTTP状态我可以发回去?
或者还有其他解决方案吗?
不幸的是,我无法在客户端更改任何内容。
编辑:它搞砸servlet的原因是因为它使用了相同的HTTP连接,因此看起来我身边的线程相同。