相关疑难解决方法(0)

避免使用REST重复POST

我一直在REST API中使用POST来创建对象.每隔一段时间,服务器就会创建一个对象,但客户端会在收到201 Created响应之前断开连接.客户端只能看到失败的POST请求,稍后再次尝试,服务器会愉快地创建一个重复的对象......

其他人一定有这个问题吧?但我谷歌周围,每个人似乎都忽略了它.

我有2个解决方案:

A)改为使用PUT,并在客户端上创建(GU)ID.

B)向客户端上创建的所有对象添加GUID,并让服务器强制执行UNIQUE-ness.

A与现有框架不匹配,B感觉就像是黑客.在现实世界中,其他人如何解决这个问题?

编辑:

使用Backbone.js,您可以在客户端上创建对象时将GUID设置为id.保存后,Backbone将执行PUT请求.让你的REST后端处理PUT到不存在的id,然后你就设置了.

rest post atomicity

39
推荐指数
4
解决办法
3万
查看次数

如何处理超时POST请求

在RESTful SOA中,假设我通过AJAX发出POST请求,但在请求超时之前我没有得到响应.进一步假设重新提交请求将是有害的.POST不是幂等的.例如,也许我正在发布银行转帐.如果我没有收到回复,我不知道服务器是否处理了请求.

假设我可以控制客户端和服务端,那么处理此问题的最佳做法是什么?

我最初的想法是在每个POST请求中包含一个nonce(即一个伪id;某种唯一标识符); 例如,也许是If-None-Match标头中的值.使用这种方法,客户端可以以编程方式重新发出具有相同伪id的超时请求,如果服务器包含重复值,则服务器可以拒绝它.

rest soa timeout http-post

9
推荐指数
1
解决办法
3832
查看次数

每 5 分钟后在 Web 逻辑服务器 11g 中重复请求

我们在 Web 逻辑服务器 11g 中面临长时间运行线程的问题。

实际发生的情况是,当我们在应用程序中发出请求时,如果与请求关联的线程耗时超过 5 分钟。我们的 weblogic 服务器 11g 正在为同一请求创建一个新线程。这意味着 5 分钟后我们有 2 个长时间运行的线程来处理相同的请求(10 分钟后我们将有 3 个,依此类推)。这件事每 5 分钟重复一次,weblogic 服务器中的所有线程都被攻击,最后服务器进入“警告”状态,应用程序挂起。

我怀疑这是会话复制问题,但我们没有使用任何集群环境,所以我相信会话复制不会是服务器出现这种奇怪行为的原因。

非常感谢有关如何解决此问题的任何建议。

weblogic11g

5
推荐指数
1
解决办法
1390
查看次数

标签 统计

rest ×2

atomicity ×1

http-post ×1

post ×1

soa ×1

timeout ×1

weblogic11g ×1