Как вернуть сериализованный объект, используя MappingJackson2HttpMessageConverter

Проблема частично исправлена: кажется, что использование потоков предотвращает регулярное потребление сообщений, даже если это неблокирующий вызов.

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

// … thread stuff
for (auto nI = 0; nI < nCount; nI++)
{
     // Heavy computing
     nSleepStep = 5;
     nSleepTime = 200;
     while (nSleepTime > nSleepStep)
     {
          while(PeekMessage(&msg, hWnd, 0, 0, PM_REMOVE))
          {
             switch( msg.message ) 
             { 
             case WM_TIMER : 
             case WM_PAINT :
               TranslateMessage( &msg );
               DispatchMessage( &msg );
               break;
             }
         }
         std::this_thread::sleep_for(std::chrono::milliseconds(nSleepStep));
         nSleepTime -= nSleepStep;
     }
}
0
задан Bartłomiej Sobieszek 19 January 2019 в 10:29
поделиться

1 ответ

Я решил свою проблему благодаря этому ответу https://stackoverflow.com/a/10650452/2010246

A

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    converters.add(new MappingJackson2HttpMessageConverter());
}

Не будет работать только таким образом, даже если я переопределяю этот метод в AbstractDispatcherServletInitializer

Вместо этого мне пришлось создать отдельный класс для конфигурации MVC

package configuration;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import java.util.List;

@Configuration
public class Mvc extends WebMvcConfigurationSupport {
    protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(converter());
        addDefaultHttpMessageConverters(converters);
    }

    @Bean
    MappingJackson2HttpMessageConverter converter() {
        return new MappingJackson2HttpMessageConverter();
    }
}

Теперь он загружается правильно, и я могу просто вернуть класс, как я хотел

Я думаю, основная проблема заключалась в том, что не было класса, который был бы аннотирован как @Configuration и расширял бы WebMvcConfigurationSupport родителя

0
ответ дан Bartłomiej Sobieszek 19 January 2019 в 10:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: