Jersey不工作时的流线型输出。表现为块

Jersey不工作时的流线型输出。表现为块,jersey,Jersey,我需要流记录,因为他们是可用的。因此我有 import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import javax.ws.rs.core.StreamingOutput; import org.apache.log4j.Logger; public

我需要流记录,因为他们是可用的。因此我有

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;

import javax.ws.rs.core.StreamingOutput;

import org.apache.log4j.Logger;

public class StreamingOutputImpl extends RetrieverResource implements StreamingOutput {
    private static final Logger LOGGER = Logger.getLogger(StreamingOutputImpl.class);
    private OutputStream os;

    public StreamingOutputImpl(final RequestParameters parameters, final String basePath) {
        super(parameters, basePath);
    }

    @Override
    public void write(final OutputStream os) throws IOException {
        this.os = os;
        read();
    }

    @Override
    public void writeRecord(final GenericRecord record) {
        try {
            Writer writer = new BufferedWriter(new OutputStreamWriter(os));
            writer.write(record.toString());
            writer.flush();
        } catch (final IOException e) {
            LOGGER.error("Error while write record " + record, e);
        }
    }
}
假设我有100条记录,writeRecord()被调用100次。我在浏览器中看到的输出(带有@GET和@POST)仅在第100条记录之后,而不是在每条记录之后


有什么建议吗

使用firebug检查浏览器和服务器之间正在交换的数据


这可能是特定于浏览器的行为,仅当服务器关闭输出流以将其呈现给GUI时才呈现数据。

代码是正确的。只有浏览器(FF和Chrome)一次呈现所有数据。使用curl,我可以看到以流方式呈现的数据