在泽西岛,我试图使用过滤器来获取请求和响应信息,然后将它们发送到队列中。但是我遇到了以下错误。
net.minidev.json.parser.ParseException: Unexpected token
com.api.core.ApiArrayResponse@66e6f184 at position 55.
可以获取信息并转换为JSON数据的过滤器
public void filter(ContainerRequestContext requestContext,
ContainerResponseContext responseContext) {
System.out.println("filter start " +
requestContext.getUriInfo().getPath());
JSONObject jsonObject = new JSONObject();
Map headers = requestContext.getHeaders();
jsonObject.put("PathInfo", request.getPathInfo());
jsonObject.put("HostName", request.getRemoteUser());
jsonObject.put("requestHeader", headers);
String res = responseContext.getEntity().toString();
try {
jsonObject.put("responseBody", JSONValue.parseStrict(res));
} catch (net.minidev.json.parser.ParseException e) {
e.printStackTrace();
}
if (requestContext.getUriInfo().getPath().equals("test")) {
AuditQueue.queue.add(jsonObject.toJSONString());
}
}
还有ApiArrayResponse类
public class ApiArrayResponse<T> implements IApiResponse {
@HeaderParam(AddRequestIdFilter.API_TRACKING_ID)
public String request_id;
@XmlElement
public Collection<T> data;
@XmlElement
public PageInfo paging;
public ApiArrayResponse() {
}
public ApiArrayResponse(Collection<T> data) {
this.data = data;
}
public ApiArrayResponse(Collection<T> data, PageInfo pi) {
this.data = data;
this.paging = pi;
}
@Override
public void setRequestId(String requestId) {
request_id = requestId;
}
}
谁能帮助我找出我的代码中的问题以及如何解决?谢谢