Настройте Apache johnzon для симпатичной печати в не OSGI-контексте - PullRequest
0 голосов
/ 29 марта 2020

У меня проблема, когда я хочу настроить, как мое веб-приложение JAXRS возвращает JSON полезную нагрузку клиентам (например, включить симпатичную печать). Для размещения моего веб-приложения я использую новейшую версию Tomee (apache -tomee-webprofile-8.0.1).

@GET
@Produces({"application/json; charset=UTF-8"})
public HealthCheckResponse invokeTestService() {
...
}
  • Я могу использовать JAX-Binding-Annotations, когда хочу получить специальное форматирование в результирующем JSON, например, я могу использовать JsonbNillable, чтобы указать, будут ли поля возвращены как JSON поля, когда они равны нулю или нет:
@javax.json.bind.annotation.JsonbNillable
public class HealthCheckResponse {
...

  • Пока все работает нормально и как я и ожидал. Но затем я хотел включить pretty-printing для полезной нагрузки JSON, для этого мне нужно настроить Apache Johnzon. Johnzon предоставляет логическое свойство под названием "pretty" , которое, по-видимому, является логическим, для которого необходимо установить значение true, чтобы иметь разрывы строк и отступы в результирующих JSON.
  • Но я не могу найти способ, как я могу установить это логическое свойство в true. Похоже, что Джонсон использует концепцию OSGI под названием «Configuration Admin» для настройки таких свойств, но, поскольку мое веб-приложение является обычным веб-приложением JAXRS, размещенным на сервере веб-приложений Tomee, я не могу использовать концепции OSGI для настройки этого.

Я искал решение этой проблемы, но безрезультатно. Даже поиск исходного кода Джонзона не помог. Я предполагаю, что на самом деле не существует способа, как такая конфигурация «Администратор конфигурации» работает без OSGI-контейнера, или когда существует способ, которым эта концепция отображается в не-OSGI-мире, это довольно непонятно, и было бы очень приятно чтобы знать, как это сделать.

Любая помощь приветствуется. Спасибо и ура Майкл

...