tho*_*ork 14 logging jax-rs servlet-filters
我需要查看我的请求主体与客户端JAX-RS请求,以验证序列化是否正常,并重用请求测试客户端,如Postman.
我知道可以使用例如使用Jersey激活日志记录resource.addFilter(new com.sun.jersey.api.client.filter.LoggingFilter());.但是,我不直接使用Jersey或RESTEasy实现,而是通过JAX-RS API抽象:
final WebTarget target =
ClientBuilder.newBuilder().build().target("http://localhost:8080");
Run Code Online (Sandbox Code Playgroud)
如何在此处启用日志记录?
但是,有时close()来自代码片段的方法不会被JAX-RS实现调用(org.jboss.resteasy:resteasy-client-3.0.11.FINAL在本例中).
Pau*_*tha 24
JAX-RS 2.0(它看起来像你正在使用),有ClientRequestFilter.您可以使用Client甚至是注册它WebTarget.从该filter方法中,您可以获取实体,并进行日志记录
public class LoggingFilter implements ClientRequestFilter {
private static final Logger LOG = Logger.getLogger(LoggingFilter.class.getName());
@Override
public void filter(ClientRequestContext requestContext) throws IOException {
LOG.log(Level.INFO, requestContext.getEntity().toString());
}
}
[...]
Client client = ClientBuilder.newClient();
client.register(new LoggingFilter());
Run Code Online (Sandbox Code Playgroud)
您可能会觉得有趣的其他一些好东西的ClientRequestContextAPI.
也可以看看:
| 归档时间: |
|
| 查看次数: |
33753 次 |
| 最近记录: |