我試圖通過響應對象來傳輸ProcessBuilder的輸出。現在,只有在流程完成後,我才能在客戶端獲得輸出。我希望看到客戶端的輸出被同時打印。目前,這是我的代碼,並且在完成該過程後,它會在客戶端(POSTMAN)中打印出所有內容。如何通過Jersey響應對象同時傳輸OutputStream
StreamingOutput stream = new StreamingOutput() {
@Override
public void write(OutputStream os) throws IOException, WebApplicationException {
String line;
Writer writer = new BufferedWriter(new OutputStreamWriter(os));
BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
try {
while ((line = input.readLine()) != null) {
writer.write("TEST");
writer.write(line);
writer.flush();
os.flush();;
}
} finally {
os.close();
writer.close();
}
}
};
return Response.ok(stream).build();
看看這個https://dzone.com/articles/jerseyjax-rs-streaming-json – gladiator