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