为什么 Jersey 在我的 POST 请求中为实体记录一个问号?

Why does Jersey log a question mark for the entity in my POST request?

我想使用 Jersey 客户端从我的 Dropwizard 应用访问 REST 服务。同样的技术在不同的地方工作得很好,但在目前的情况下,服务总是 returns a 500 尽管我知道 URL 等是正确的。由于我无法修改服务,因此我想记录我的请求以验证它们是否正常(因为我怀疑我的实体未正确序列化)。

因此我像这样在客户端注册了一个记录器:

restClient.register(new LoggingFilter(Logger.getAnonymousLogger(), true));

但它从不记录我的实体。我总是这样:

INFO  [2015-07-01 14:12:47,433] unknown.jul.logger: 1 * Sending client request on thread dw-admin-34
1 > POST [My URL which is correct]
1 > Accept: application/json
1 > Accept-Encoding: gzip
1 > Content-Type: application/json
?     

这是否意味着它不识别任何实体?

这是我构建客户端的方式:

this.restClient = new JerseyClientBuilder(dropwizardEnvironment)
                .using(MyConfiguration.jerseyClient) // new JerseyClientConfiguration() in Dropwizard config class
                .build("my client name");

这是我提出请求的方式:

Response r = restClient.target(address)
                .request(MediaType.APPLICATION_JSON)
                .acceptEncoding("gzip")
                .post(Entity.json(entity)); //omitting entity. It's very simple and I checked that its values are fine

我对这一切都很陌生,所以这可能只是一些愚蠢的菜鸟错误。对请求正文未正确记录的任何想法?

问题在于 Jersey 客户端默认对正文进行 gzip 压缩。禁用 taht 后,它会记录并像魅力一样工作。