我正在使用Foo f = response.readEntity(Foo.class)
从javax.ws.rs.core.Response对象中获取实体。
问题是该语句似乎停留在循环中(根据htop使用100%的CPU),直到JVM最终因内存不足而终止。
我尝试使用调试器进行调查,但该函数是时间敏感的,当我尝试执行逐步跟踪时,服务会抛出TimeoutException
。
答案 0 :(得分:1)
问题与readEntity()
函数没有直接关系:查询参数未正确发送到API,因此搜索参数最终在SQL查询中为null
。如果没有传递参数,这与数据库的默认行为是返回完整数据集,导致readEntity()
方法被传递太多条目来处理(既不是无限的也不是循环)。
如果其他任何人冻结readEntity()
,请考虑您无意中在Response对象中传递过多数据的可能性。
答案 1 :(得分:0)
我认为1K的数据不算过分:)大约一周前,我用一个复制器(在本期中提到)打开了这个https://github.com/eclipse-ee4j/jersey/issues/4081。在我的情况下,客户端没有使用100%的CPU。在readEntity()上被阻止