Фильтр сервлетов против перехватчика CXF для изменения содержимого запроса и ответа?

Мы создали некоторые веб-службы REST (jax-rs) с использованием Apache CXF. Они возвращают ответ JSON.

Теперь мне нужно изменить некоторые параметры запроса, и содержимое ответа (в основном нам нужно кодировать / зашифровать некоторые данные, возвращаемые службой; и декодировать / дешифровать те же данные, когда они используются в качестве параметра в последующем вызове службы.)

Кажется, у меня есть здесь как минимум 4 варианта:

  1. Использовать фильтр сервлета
  2. Использовать перехватчик CXF
  3. Использовать фильтр JAX-RS
  4. Не использовать какой-либо конкретный шаблон и выполнять кодирование / декодирование в рамках фактического сервиса логика.

Я раньше использовал фильтры сервлетов и точно понимаю, как изменять параметры запроса и тело ответа, поэтому я склоняюсь к этому. Однако я готов использовать фильтр CXF Interceptor или JAX-RS, если это более «правильный» способ решить эту проблему при использовании CXF. Но, судя по документации, я не совсем понимаю , как это сделать. Например, могу ли я использовать метод setContent объекта Message для изменения ответа JSON? Какой параметр формата в этом случае, просто String.class?

11
задан Michael Lucas 7 February 2012 в 15:52
поделиться