Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xpages 处理并行REST post请求_Xpages_Lotus Domino - Fatal编程技术网

Xpages 处理并行REST post请求

Xpages 处理并行REST post请求,xpages,lotus-domino,Xpages,Lotus Domino,我已经根据Domino示例REST服务特性创建了自己的REST服务 就我所了解的库的设计而言,每个REST请求都将在服务器上自己的线程中运行。这种方法不允许处理对同一文档的并行POST请求 我在XPages扩展库中没有发现任何示例可以将post请求作为服务器上的事务处理,即在整个请求处理时间内阻塞服务器资源并将下一个请求放入队列 有人能指出允许处理并行请求的服务的源代码吗 我的请求后处理功能的框架如下 @POST @Path(PATH_SEPARATOR + MyURL) @Consumes(M

我已经根据Domino示例REST服务特性创建了自己的REST服务

就我所了解的库的设计而言,每个REST请求都将在服务器上自己的线程中运行。这种方法不允许处理对同一文档的并行POST请求

我在XPages扩展库中没有发现任何示例可以将post请求作为服务器上的事务处理,即在整个请求处理时间内阻塞服务器资源并将下一个请求放入队列

有人能指出允许处理并行请求的服务的源代码吗

我的请求后处理功能的框架如下

@POST
@Path(PATH_SEPARATOR + MyURL)
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response myPost(
  String requestEntity,
  @Context final UriInfo uriInfo)
{
  LogMgr.traceEntry(this, "myPost");

  RestContext.verifyUserContext();

  String myJson = ... // Process post

  Response response = buildResponse(myJson);

  LogMgr.traceExit(this, "myPost", "OK");

  return response;
} 
我想实现这样的东西

// Start transaction

String myJson = ... // Process post

// Stop transaction
有没有一种在Java中实现的方法?

我想您可以在传统Notes/Domino环境中使用,在Java中:-

你尝过这些吗?我不明白他们为什么不工作

/John

我想您可以在传统Notes/Domino环境中使用,也可以在Java中使用:-

你尝过这些吗?我不明白他们为什么不工作


/约翰

我同意约翰的观点。您可以使用文档锁定来防止同时更新同一文档。您可能还需要考虑对REST API的定义的一些更改。 首先,您暗示您正在使用POST更新现有文档。通常,POST用于创建新资源。考虑使用PUT而不是POST。< /P>
第二,即使使用文档锁定,您也可能需要检查版本冲突。例如,假设客户机读取文档的版本2,然后尝试更新它。同时,另一个客户端已经将文档更新为版本3。许多REST API用于处理此类版本冲突。

我同意John的观点。您可以使用文档锁定来防止同时更新同一文档。您可能还需要考虑对REST API的定义的一些更改。 首先,您暗示您正在使用POST更新现有文档。通常,POST用于创建新资源。考虑使用PUT而不是POST。< /P> 第二,即使使用文档锁定,您也可能需要检查版本冲突。例如,假设客户机读取文档的版本2,然后尝试更新它。同时,另一个客户端已经将文档更新为版本3。许多RESTAPI用于处理此类版本冲突