0
我是網絡服務新手。我已經寫了一個創建和返回PDF文件的休息Web服務。我的代碼如下其他Web服務同步
@Path("/hello")
public class Hello {
@GET
@Path("/createpdf")
@Produces("application/pdf")
public Response getpdf() {
synchronized(this){
try {
OutputStream file = new FileOutputStream(new File("c:/temp/FirstPdf5.pdf"));
Document document = new Document();
PdfWriter.getInstance(document, file);
document.open();
document.add(new Paragraph("Hello Kiran"));
document.add(new Paragraph(new Date().toString()));
document.close();
file.close();
} catch (Exception e) {
e.printStackTrace();
}
File file1 = new File("c:/temp/FirstPdf5.pdf");
ResponseBuilder response = Response.ok((Object) file1);
response.header("Content-Disposition",
"attachment; filename=new-android-book.pdf");
return response.build();
}
}
}
如果多個客戶端試圖同時調用Web服務,它會影響我的代碼嗎? 我的意思是,如果客戶端A使用Web服務,並在同一時間如果客戶端B嘗試使用Web服務將PDF文件獲取寫過。
如果我的問題是不妥當的,請讓我知道
感謝
如果我建立內存,如果多次調用該服務的文件,willn't文件overwitten – 2012-01-06 06:22:37
有機會的話,在寫存儲器時,你可以有衝突,但我想這取決於可用資源,處理請求的線程數量和服務負載。我建議如果你非常擔心,那麼你應該使用隨機數字或GUID來編寫臨時文件。 – SCB 2012-01-10 21:45:35