Я пытаюсь добавить Swagger-UI в приложение Spring MVC. Все запросы и ответы org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
сериализуются как gson 2.6.1
(см. Следующий код.)
Когда я пытался интегрировать Swagger, мне пришлось добавить следующие зависимости:
<!-- json request -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.7</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.7</version>
</dependency>
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
Интеграция Swagger работала хорошо, но некоторые из моих запросов не работают.
Я получаю AbstractHandlerMethodMapping: 302 - Did not find handler method for /...
. Я думаю, Джексон и Гсон не совместимы друг с другом таким образом. Когда я удаляю зависимость jackson.core, все работает нормально.
В проекте абсолютно необходимо использовать Gson, который мы также установили в контексте приложения spring.
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jsonConverter" />
</list>
</property>
</bean>
<bean id="gsonBuilder" class="com.google.gson.GsonBuilder" init-method="serializeNulls" />
<bean id="jsonConverter" class="org.springframework.http.converter.json.GsonHttpMessageConverter">
<property name="supportedMediaTypes" value="application/json" />
<property name="gson">
<bean class="com.google.gson.Gson" factory-bean="gsonBuilder"
factory-method="create" />
</property>
</bean>
Мой вопрос: у кого-нибудь есть идея, почему Джексон и Гсон ведут себя так же в одном приложении? Или я что-то забыл или пропустил, чтобы Джексон не конвертировал мои запросы / ответы?
Я надеюсь, что смогу прояснить мою проблему подробно.