如何创建立即完成的客户响应?

时间:2018-04-04 06:33:44

标签: jax-rs jersey-2.0

我想要存根JAX-RS客户端请求。我想要返回一个立即完成的客户端Response,而不是进行HTTP调用。我尝试调用javax.ws.rs.core.Response.ok().build(),遗憾的是,当应用程序稍后调用Response.getEntity()时,会出现此异常:

java.lang.IllegalStateException: Method not supported on an outbound message.
    at org.glassfish.jersey.message.internal.OutboundJaxrsResponse.readEntity(OutboundJaxrsResponse.java:144

我挖掘了泽西岛的源代码,但无法想出办法来做到这一点。 如何将服务器端Response转换为泽西岛(或更常见的JAX-RS)中的客户端Response

用例

我想在开发环境(而不是单元测试)中存根HTTP调用,以证明网络调用是我所看到的性能问题的原因。我尝试使用分析器来执行此操作,但调用是500个线程的异步调用,一些网络调用快速返回(~100ms),而其他调用返回慢得多(~1.5秒)。 Profilers不会很好地遵循异步工作流程,即使他们这样做,它们也只显示所有调用所消耗的平均时间。我需要查看每个电话的时间。对网络调用进行存根允许我测试服务器是否正在返回具有如此大的增量(100ms到1.5秒)的呼叫,或者周围的代码是否负责。

0 个答案:

没有答案