Tôi muốn có thể in tải JAX-RS 2 JSON theo yêu cầu, bất kể triển khai thực tế trên máy chủ ứng dụng của tôi.JAX-RS 2 in Yêu cầu JSON
Tôi đã thử các giải pháp được đề xuất trên SO nhưng tất cả đều bao gồm các tệp nhị phân từ việc triển khai thực tế (như Jersey và tương tự) và tôi chỉ được phép sử dụng javaee-api v 7.0 trong ứng dụng của mình.
Tôi đã thử triển khai ClientRequestFilter và ClientResponseFilter trên Máy khách của mình nhưng chúng không chứa các thực thể được tuần tự hóa.
Dưới đây là một ví dụ về khách hàng:
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);
Và đây là việc thực hiện các 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());
}
}
Các công trình lớn. Tôi chỉ cần chú thích bộ lọc là @Provider và đăng ký nó trên Máy khách của tôi và nó ghi nhật ký JSON từ Thực thể đã đăng. BTW, tôi đang sử dụng JAX-B để sắp xếp các thực thể. Cảm ơn thời gian tốt đẹp của bạn, có upvote của tôi và chấp nhận. – D00de
Tuyệt vời để gỡ lỗi! –