以下代码中read Entity
和finish
日志之间的时间约为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");