Java Jersey REST响应消息正文
如何在筛选器方法中将响应消息正文打印为字符串,并尝试了两种响应方法Java Jersey REST响应消息正文,java,jersey,Java,Jersey,如何在筛选器方法中将响应消息正文打印为字符串,并尝试了两种响应方法(getEntityOutputStream()/getEntity()/GetContainerResponseWriter()) 我使用Jersey日志打印请求/响应正文 在我的资源配置中 registerInstances(new LoggingFilter(myLogger, true)); 日志过滤器 public class LoggingFilter implements ContainerRequestFilte
(getEntityOutputStream()/getEntity()/GetContainerResponseWriter())
我使用Jersey日志打印请求/响应正文 在我的资源配置中
registerInstances(new LoggingFilter(myLogger, true));
日志过滤器
public class LoggingFilter implements ContainerRequestFilter, ClientRequestFilter, ContainerResponseFilter,
ClientResponseFilter, WriterInterceptor {
...
您可以查看他们是如何做到的:我使用Jersey日志打印请求/响应正文 在我的资源配置中
registerInstances(new LoggingFilter(myLogger, true));
日志过滤器
public class LoggingFilter implements ContainerRequestFilter, ClientRequestFilter, ContainerResponseFilter,
ClientResponseFilter, WriterInterceptor {
...
你可以看看他们是怎么做的:我也有同样的问题,这就是我最后要做的。基本上,如果可以强制转换,我将返回实体的JSON表示,否则我将创建一个自定义响应消息 我相信会有更好的方法去做
private String createLoggingResponse(ContainerResponseContext resp) {
Object entity = resp.getEntity();
if (BaseModel.class.isInstance(entity)) {
BaseModel model = (BaseModel) entity;
ByteArrayOutputStream out = new ByteArrayOutputStream();
model.toJson(out);
return new String(out.toByteArray());
} else {
MediaType mediaType = resp.getMediaType();
return "[" + entity.toString() + "," + resp.getStatusInfo().getStatusCode() + "," + resp.getStatusInfo().getReasonPhrase() + "," + mediaType.toString() + "]";
}
}
我也有同样的问题,这就是我最后做的。基本上,如果可以强制转换,我将返回实体的JSON表示,否则我将创建一个自定义响应消息 我相信会有更好的方法去做
private String createLoggingResponse(ContainerResponseContext resp) {
Object entity = resp.getEntity();
if (BaseModel.class.isInstance(entity)) {
BaseModel model = (BaseModel) entity;
ByteArrayOutputStream out = new ByteArrayOutputStream();
model.toJson(out);
return new String(out.toByteArray());
} else {
MediaType mediaType = resp.getMediaType();
return "[" + entity.toString() + "," + resp.getStatusInfo().getStatusCode() + "," + resp.getStatusInfo().getReasonPhrase() + "," + mediaType.toString() + "]";
}
}
我不想使用LoggingFilter。另外,只想使用jersey 1.x而不是jersey 2.x。我不想使用LoggingFilter。另外,希望只使用jersey 1.x而不是jersey 2.x。