アプリケーションサーバーの実際の実装に関係なく、リクエストからJAX-RS 2 JSONペイロードを印刷することができます。JAX-RS 2 JSONリクエストを印刷
私はSOの提案されたソリューションを試しましたが、実際にはJerseyなどのような実際の実装のバイナリがすべて含まれています。私のアプリケーションではjavaee-api v 7.0しか使用できません。
クライアントでClientRequestFilterとClientResponseFilterを実装しようとしましたが、シリアル化されたエンティティは含まれていません。
ここでは、クライアントの一例です:
WebTarget target = ClientBuilder.newClient().register(MyLoggingFilter.class).target("http://localhost:8080/loggingtest/resources/accounts");
Account acc = target.request().accept(MediaType.APPLICATION_JSON).get(account.Account.class);
そして、ここではMyLoggingFilterの実装です:
@Provider
public class MyLoggingFilter implements ClientRequestFilter, ClientResponseFilter {
private static final Logger LOGGER = Logger.getLogger(MyLoggingFilter.class.getName());
@Override
public void filter(ClientRequestContext requestContext) throws IOException {
LOGGER.log(Level.SEVERE, "Request method: {0}", requestContext.getMethod());
}
@Override
public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {
LOGGER.log(Level.SEVERE, "Response status: {0}", responseContext.getStatus());
}
}
。私はちょうど@Providerとしてフィルタに注釈をつけ、クライアントに登録し、POSTされたエンティティからJSONを記録する必要がありました。 ところで、私はJAX-Bを使ってエンティティをシリアライズしています。あなたの時間のおかげでおかげで、私のupvoteと受け入れてください。 – D00de
デバッグに最適! –