Jersey Spring Boot добавить настраиваемый заголовок ответа

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

Мой вариант использования заключается в том, что я хочу создать случайную строку в одном из классов, а затем одновременно добавить ее в заголовок и двигаться дальше.

Вот несколько способов добавить заголовок ответа.

1.

 `@Produces(MediaType.APPLICATION_JSON)
     public UserClass getValues(@Context HttpHeaders header, @Context HttpServletResponse response) {
    response.setHeader("yourheadername", "yourheadervalue");
    ... }`

2.

`@GET
    @Produces({ MediaType.APPLICATION_JSON })
    @Path("/values")
    public Response getValues(String body) {

        //Prepare your entity

        Response response = Response.status(200).
                entity(yourEntity).
                header("yourHeaderName", "yourHeaderValue").build();

        return response;
    }`
  1. реализация класса ContainerResponseFilter и добавить.

Но ничто из этого не решает мой вариант использования.

Скажем, в моем классе я сгенерировал одну строку и хотел добавить в заголовок ответа, подобный этому

 @Component
public class AsyncPublisher{


    public void publishLogs(Object request, Object response, Object serviceBin, long elapsedTime ){
       String headerValue = "headerValue";
       *// get response header list here and add header like this*
       // responseHeaders.add("Custom-Header", headerValue)

    }


}

Кто-нибудь знает, как это сделать. Потому что все три метода не решают эту задачу.

Если вы еще не знаете статус, можно просто выполнить Response.ok(), который вернет ResponseBuilder. Вы можете добавить к нему заголовок. Позже, когда вы узнаете статус, установите его на ResponseBuilder. Позвоните в build(), чтобы получить Response. Посмотрите javadocs Response и Response.ResponseBuilder.

Paul Samsotha 10.01.2019 08:01

@PaulSamsotha для этого мне нужно вернуть объект Response, но здесь мой метод ничего не возвращает. У меня уже есть набор ответов, просто хочу добавить заголовок ко всем ответам.

realcodes 10.01.2019 20:24

Рассмотрите возможность рефакторинга.

Paul Samsotha 11.01.2019 01:31

Я ожидал, что №2 сработает. вы пробовали поместить вызов заголовка перед вызовом состояния? иногда при построении заголовок записывается в выходной поток и сначала сбрасывается. поэтому более поздние вызовы заголовков не имеют значения.

Jeff Wang 17.01.2019 18:36
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
364
0

Другие вопросы по теме