从JerseyClient响应中读取JSON实体需要很长时间

时间:2016-03-21 10:43:54

标签: java json jaxb moxy jersey-client

以下代码中read Entityfinish日志之间的时间约为5秒。这可能是因为每次我调用readEntity时,JerseyClient都会为该响应准备JAXB上下文。我不会在我的代码中的任何地方执行此操作,因此可能是通过类扫描自动完成的。

有什么方法可以将我已经准备好的JAXB上下文以某种方式注册到我的JerseyClient并在每次调用其他服务时重用它? ......或者说这个简单的操作需要花费很多时间的另一个原因。

JerseyClient client = new JerseyClientBuilder().property(ClientProperties.CONNECT_TIMEOUT, connectTimeout).property(ClientProperties.READ_TIMEOUT, readTimeout).property(ClientProperties.FOLLOW_REDIRECTS, false).register(MoxyJsonFeature.class).register(getMoxyJsonConfig().resolver()).build();
JerseyWebTarget target = client.target(path);
Invocation.Builder builder = target.request(javax.ws.rs.core.MediaType.APPLICATION_JSON_TYPE.withCharset(getCharset().name())).header(HttpHeaders.AUTHORIZATION, authorization);
invocation = builder.buildGet();
Response response = invocation.invoke();

logger.info("Efficiency testing: read Entity");
T result = response.readEntity(returnClass);
logger.info("Efficiency testing: finish");

0 个答案:

没有答案