UTF-8 для отдыха - PullRequest
       4

UTF-8 для отдыха

0 голосов
/ 26 декабря 2010

В настоящее время я включаю UTF-8 как @Consumes ("application / xml; charset = utf-8") в службах RESTful для различных методов. Мне интересно посмотреть, сможем ли мы изменить это для всех сервисов REST с одним изменением конфигурации. Мы используем CXF, может, есть что-то, что он предоставляет?

Спасибо Ravi

1 Ответ

1 голос
/ 06 февраля 2011

Первый вопрос: вы уверены, что хотите запретить любому из ваших ресурсов отдыха принимать объекты, отличные от UTF-8? Такое повсеместное воззвание похоже на то, что оно может вызвать проблемы в будущем.

Я признаю, что я не использовал CXF, поэтому я не могу говорить об этих особенностях. Но я могу подумать об одном варианте каждого из них в рамках API JAX-RS и Servlet, который может соответствовать тому, чего вы хотите достичь.

Использование Servlet API: в зависимости от того, как вы развертываете свое приложение, вы можете создать и внедрить фильтр сервлета . В методе doFilter вы можете проверить кодировку объекта запроса и перейти к следующей части цепочки фильтров (в конечном итоге к остальному приложению). Если неправильная сущность отправляется по запросу, вы просто устанавливаете соответствующий статус HTTP 415 на ответ и не вызываете ваше приложение отдыха.

Использование JAX-RS: В зависимости от того, как вы анализируете / принимаете тело сущности в своих ресурсах, вы можете создать и внедрить пользовательскую реализацию MessageBodyReader . Этот читатель может проанализировать вашу сущность, убедившись, что это только UTF-8, и в противном случае выдать соответствующее исключение.

...