मैं चाहूँगा अपने आवेदन सर्वर पर अनुरोध से JAX-आरएस 2 JSON पेलोड मुद्रित करने के लिए, वास्तविक क्रियान्वयन की परवाह किए बिना सक्षम होने के लिए।JAX-आरएस 2 प्रिंट JSON अनुरोध
मैं कोशिश की है सुझाव दिया इतने पर समाधान लेकिन सभी (जर्सी और इसी तरह) की तरह वास्तविक क्रियान्वयन से बाइनरी में शामिल हैं, और मैं सिर्फ अपने आवेदन में 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 के रूप में फ़िल्टर को एनोटेट करने और इसे अपने क्लाइंट पर पंजीकृत करने की आवश्यकता है और यह पोस्टेड इकाई से जेएसओएन लॉग करता है। बीटीडब्ल्यू, मैं इकाइयों को क्रमबद्ध करने के लिए जेएक्स-बी का उपयोग कर रहा हूं। आपके समय के लिए धन्यवाद ठीक है, मेरा अपवित्र और स्वीकृति है। – D00de
डीबगिंग के लिए बढ़िया! –