jaxrs 1.1 (WLP 8.5) 注释方法线程安全吗?
Are jaxrs 1.1 (WLP 8.5) annotated methods thread safe?
我正在使用 Websphere liberty profile 8.5 附带的 jaxrs1.1 jar 来创建 REST WebService。
假设我们有一个方法 addNewProject,如下所示:
如果多人调用此webservice方法并发添加项目。使用下面的 link ,是否存在并发问题?在servlet中,每个请求都是一个单独的线程,这里是同样的情况还是我们应该自己处理并发?
endpointLink:http://somehost.com/path1/path2/addprojectdetails 和 POST JSON 对象。
@POST
@Path("addprojectdetails")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response addNewProject(ProjectDetails projectdetailsObj) {
return Response.status(200).entity("Project"+projectdetailsObj.getProjectname()+"successfully added").build();
}
我不确定您可能会想到哪种并发问题。对象本身可以是单例或请求范围(如果使用 CDI)或无状态会话 bean(如果使用 EJB)。如果您使用的是单例,那么您可能需要了解线程,而不是将状态存储在 class 中。
如果能更彻底地回答您的想法并发问题,可能会有所帮助。
我正在使用 Websphere liberty profile 8.5 附带的 jaxrs1.1 jar 来创建 REST WebService。
假设我们有一个方法 addNewProject,如下所示:
如果多人调用此webservice方法并发添加项目。使用下面的 link ,是否存在并发问题?在servlet中,每个请求都是一个单独的线程,这里是同样的情况还是我们应该自己处理并发?
endpointLink:http://somehost.com/path1/path2/addprojectdetails 和 POST JSON 对象。
@POST
@Path("addprojectdetails")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response addNewProject(ProjectDetails projectdetailsObj) {
return Response.status(200).entity("Project"+projectdetailsObj.getProjectname()+"successfully added").build();
}
我不确定您可能会想到哪种并发问题。对象本身可以是单例或请求范围(如果使用 CDI)或无状态会话 bean(如果使用 EJB)。如果您使用的是单例,那么您可能需要了解线程,而不是将状态存储在 class 中。
如果能更彻底地回答您的想法并发问题,可能会有所帮助。