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,我可以看到以流方式呈现的数据