javax.ws.rs.core.Response.readEntity()陷入了无限循环

问题描述 投票:0回答:2

我正在使用Foo f = response.readEntity(Foo.class)从javax.ws.rs.core.Response对象获取实体。

问题是该语句似乎停留在一个循环中(根据htop使用100%的CPU),直到JVM最终因缺少内存而终止。

我已尝试使用调试器进行调查,但该函数是时间敏感的,当我尝试执行逐步跟踪时,服务会抛出TimeoutException

java web-services java-ee jersey
2个回答
1
投票

该问题与readEntity()函数没有直接关系:查询参数未正确发送到API,因此搜索参数最终在SQL查询中成为null。如果没有传递参数,这与数据库的默认行为一起返回完整数据集会导致readEntity()方法被传递太多条目来处理(既不是无限也不是循环)。

如果其他任何人有一个readEntity()冻结,请考虑您无意中在Response对象中传递过多数据的可能性。


0
投票

我不认为1K的数据可以被认为是过度的:)我在一周前用一个复制器(在问题中提到)打开了这个https://github.com/eclipse-ee4j/jersey/issues/4081。在我的情况下,客户端没有使用100%的CPU;它在readEntity()上被阻止

© www.soinside.com 2019 - 2024. All rights reserved.