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