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

问题在于该语句似乎陷入了循环(根据htop,使用了100%的CPU),直到JVM由于内存不足而最终终止。

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

最佳答案

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

如果其他任何人都冻结了readEntity(),请考虑是否有可能无意间在Response对象中传递了大量数据。

关于java - javax.ws.rs.core.Response.readEntity()陷入无限循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42086831/

10-12 20:32