Я хотел бы знать, как настроить Dropwizard для регистрации ответа JSON.Как регистрировать ответы JSON в Dropwizard (Jersey)
ответ
В dropwizard 0.8.1 (также попытался в 0.9.0-SNAPSHOT), добавить к Application.run(...)
:
import java.util.logging.Logger;
import org.glassfish.jersey.filter.LoggingFilter;
...
public void run(MyApplicationConfiguration conf, Environment env) throws Exception {
// do your stuff and then add LoggingFilter
env.jersey().register(new LoggingFilter(
Logger.getLogger(LoggingFilter.class.getName()),
true)
);
}
Чтобы настроить регистратор, добавьте в файл конфигурации (например: conf.yml
):
logging:
loggers:
org.glassfish.jersey.filter.LoggingFilter: INFO
В подклассе Service (бывший HelloWorldService), в способе запуска, добавьте:
environment.setJerseyProperty(ResourceConfig.PROPERTY_CONTAINER_REQUEST_FILTERS, LoggingFilter.class.getName());
environment.setJerseyProperty(ResourceConfig.PROPERTY_CONTAINER_RESPONSE_FILTERS, LoggingFilter.class.getName());
, а затем убедитесь, что com.sun.jersey.api.container.filter.LoggingFilter (или любой родительский пакет) выполнен по меньшей мере, на уровне журнала ИНФО, например:
logging:
loggers:
"com.sun.jersey.api.container.filter.LoggingFilter": INFO
По какой-то причине регистратор, похоже, не настроил уровень? –
Обратите внимание, что это было в Dropwizard 0.6.x дней. В 0.7.0 оно могло измениться. Я никогда ничего не строил с Dropwizard 0.7.0 и ушел от него, поэтому я не уверен. Сожалею. –
LoggingFilter внутренне называет logger.info (...) Вот фрагмент: частный журнал недействительным (окончательный StringBuilder б) { если (! Логгер = NULL) { logger.info (b.toString()); } } –
в dropwizard 0.7.0 правильный синтаксис для того, чтобы запрашивать и протоколирование ответ:
environment.jersey().property(ResourceConfig.PROPERTY_CONTAINER_REQUEST_FILTERS, LoggingFilter.class.getName());
environment.jersey().property(ResourceConfig.PROPERTY_CONTAINER_RESPONSE_FILTERS, LoggingFilter.class.getName());
ответы немного устарели, это то, как это должно быть сделано в новых версиях:
env.jersey().register(new LoggingFeature(logger, LoggingFeature.Verbosity.PAYLOAD_ANY));
Где 0 является java.util.logging.Logger
Logging фильтр осуждается, поэтому мы должны использовать LoggingFeature.
К сожалению, я не мог заставить его работать с ответом Upvote @ Щелкните о
env.jersey().register(new LoggingFeature(logger, LoggingFeature.Verbosity.PAYLOAD_ANY));
Следующий код работает для меня. Они соответствуют разным конструкторам.
environment.jersey().register(new LoggingFeature(Logger.getLogger(LoggingFeature.DEFAULT_LOGGER_NAME), Level.INFO, LoggingFeature.Verbosity.PAYLOAD_ANY, LoggingFeature.DEFAULT_MAX_ENTITY_SIZE));
Вот конструкторы в обоих случаях.
public LoggingFeature(Logger logger, Integer maxEntitySize) {
this(logger, (Level)null, DEFAULT_VERBOSITY, maxEntitySize);
}
public LoggingFeature(Logger logger, Level level, LoggingFeature.Verbosity verbosity, Integer maxEntitySize) {
this.filterLogger = logger;
this.level = level;
this.verbosity = verbosity;
this.maxEntitySize = maxEntitySize;
}
Установка уровня делает трюк.
- 1. DropWizard/Jersey API Клиенты
- 2. Проблема сериализации/сопоставления Dropwizard/Jersey
- 3. Как регистрировать SQL-выражения в Dropwizard
- 4. Как я могу вернуть ответы JSON с помощью Healthwatch Dropwizard?
- 5. Я хочу, чтобы dropwizard возвращал ответы HTTP 500 как JSON
- 6. Как регистрировать ответы JSON HTTP с помощью Winston/Morgan
- 7. Dropwizard/Jersey - домен службы из файла конфигурации
- 8. Использование Restler3, как регистрировать запросы/ответы
- 9. Как печатать ответы сервера с помощью LoggingFeature в Dropwizard 1.0.2?
- 10. Проверка параметров запроса ресурса на jersey-dropwizard
- 11. Сообщения об ошибках Dropwizard от Jersey
- 12. Dropwizard Jersey client Многостраничный http-запрос
- 13. Как избежать конфликта зависимости при использовании клиента dropwizard + jersey
- 14. Есть ли способ зарегистрировать весь модуль в Dropwizard/Jersey?
- 15. Как регистрировать HTTP-запросы/ответы в Netty 4.0.0.Beta1?
- 16. В Dropwizard, как сравнить дату в json
- 17. Ответы JSON в Rails
- 18. Dropwizard скрывает поле в json
- 19. UnrecognizedPropertyException в JSON с JERSEY
- 20. jersey json generation
- 21. Потребление JSON post Jersey
- 22. Jackson Jersey JSON
- 23. JSON MediaType in Jersey
- 24. Jersey QueryParam получен как null
- 25. Как регистрировать все запросы и ответы клиентов веб-сервисов
- 26. Jersey + Jetty + JSON
- 27. Dropwizard и Jersey SSE (события на стороне сервера)
- 28. Dropwizard/Jersey Изменение параметров запроса с использованием фильтра
- 29. Как отправить запрос JSON в Jersey-Test
- 30. Akka-http как регистрировать ответы об ошибках сервера?
LoggingFilter устарел. Обновите ответ LoggingFeatuers – Ramesh