Moví mi proyecto de Spring Boot 2.1.9 a 2.2.0. Al comenzar el proyecto me enfrento a los siguientes errormensajes.
Lo que podría haber causado, tampoco lo estoy usando hateoasen mi pom.xmlarchivo.
Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.plugin.core.PluginRegistry<org.springframework.hateoas.client.LinkDiscoverer, org.springframework.http.MediaType>' available: expected single matching bean but found 17: modelBuilderPluginRegistry,modelPropertyBuilderPluginRegistry,typeNameProviderPluginRegistry,syntheticModelProviderPluginRegistry,documentationPluginRegistry,apiListingBuilderPluginRegistry,operationBuilderPluginRegistry,parameterBuilderPluginRegistry,expandedParameterBuilderPluginRegistry,resourceGroupingStrategyRegistry,operationModelsProviderPluginRegistry,defaultsProviderPluginRegistry,pathDecoratorRegistry,apiListingScannerPluginRegistry,relProviderPluginRegistry,linkDiscovererRegistry,entityLinksPluginRegistry
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'linkDiscoverers' defined in class path resource [org/springframework/hateoas/config/HateoasConfiguration.class]: Unsatisfied dependency expressed through method 'linkDiscoverers' parameter 0; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.plugin.core.PluginRegistry<org.springframework.hateoas.client.LinkDiscoverer, org.springframework.http.MediaType>' available: expected single matching bean but found 17: modelBuilderPluginRegistry,modelPropertyBuilderPluginRegistry,typeNameProviderPluginRegistry,syntheticModelProviderPluginRegistry,documentationPluginRegistry,apiListingBuilderPluginRegistry,operationBuilderPluginRegistry,parameterBuilderPluginRegistry,expandedParameterBuilderPluginRegistry,resourceGroupingStrategyRegistry,operationModelsProviderPluginRegistry,defaultsProviderPluginRegistry,pathDecoratorRegistry,apiListingScannerPluginRegistry,relProviderPluginRegistry,linkDiscovererRegistry,entityLinksPluginRegistry
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of method linkDiscoverers in org.springframework.hateoas.config.HateoasConfiguration
required a single bean, but 17 were found:
- modelBuilderPluginRegistry: defined in null
- modelPropertyBuilderPluginRegistry: defined in null
- typeNameProviderPluginRegistry: defined in null
- syntheticModelProviderPluginRegistry: defined in null
- documentationPluginRegistry: defined in null
- apiListingBuilderPluginRegistry: defined in null
- operationBuilderPluginRegistry: defined in null
- parameterBuilderPluginRegistry: defined in null
- expandedParameterBuilderPluginRegistry: defined in null
- resourceGroupingStrategyRegistry: defined in null
- operationModelsProviderPluginRegistry: defined in null
- defaultsProviderPluginRegistry: defined in null
- pathDecoratorRegistry: defined in null
- apiListingScannerPluginRegistry: defined in null
- relProviderPluginRegistry: defined by method 'relProviderPluginRegistry' in class path resource [org/springframework/hateoas/config/HateoasConfiguration.class]
- linkDiscovererRegistry: defined in null
- entityLinksPluginRegistry: defined by method 'entityLinksPluginRegistry' in class path resource [org/springframework/hateoas/config/WebMvcEntityLinksConfiguration.class]
Pom
<properties>
<java.version>1.8</java.version>
<swagger-springfox.version>2.9.2</swagger-springfox.version>
<sonar.jacoco.execPath>${project.basedir}/target/jacoco.exec</sonar.jacoco.execPath>
<jasypt-spring-boot-starter>2.1.1</jasypt-spring-boot-starter>
<logbook-spring-boot-starter>1.13.0</logbook-spring-boot-starter>
<assertj-swagger>0.8.1</assertj-swagger>
<jacoco-version>0.8.4</jacoco-version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger-springfox.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger-springfox.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-spring-web</artifactId>
<version>${swagger-springfox.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-core</artifactId>
<version>${swagger-springfox.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-data-rest</artifactId>
<version>${swagger-springfox.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-bean-validators</artifactId>
<version>${swagger-springfox.version}</version>
</dependency>
java
spring-boot
swagger-2.0
spring-hateoas
Viyaan Jhiingade
fuente
fuente

mvn dependency:treey verifique si algo más está atrayendo laHateoasdependencia. IRC Si usa Spring Data REST que depende de Spring Hateoas.Respuestas:
Tuve este problema con
Swagger + HATEOASen mispring-bootsolicitud.La solución se da a continuación (edite su clase de configuración Swagger):
fuente
_linksse activalinksy_embeddedse activacontenten la respuesta, por lo tanto, la mayoría de mis pruebas de mvcMock que comprueban_linksestán fallando y la API es diferente de lo que se proporciona de fábrica con spring-boot-starter- hateosHalLinkDiscovererclase en lugar deCollectionJsonLinkDiscovererno hacer el truco y aún así mis pruebas fallan porque los enlaces se representan comolinksy no_links, así como el contenido se representa comocontenty no lo esperado_embedded@EnableHypermediaSupport(type=EnableHypermediaSupport.HypermediaType.HAL)que debe incluirorg.springframework.hateoas.config.EnableHypermediaSupport. No estoy seguro si importa, pero tengo como dependencia: spring-boot-starter-hateoasMejor solución
Agregue el siguiente código en la clase SwaggerConfig
fuente
Para mí, este enlace me ayudó: https://github.com/spring-projects/spring-hateoas/issues/731
En pocas palabras, agregué a mis dependencias:
fuente
prueba esta versión 2.6.1, ya resuelvo de esta manera
fuente
El problema al que me enfrento cuando uso
con springfox swagger
si echa un vistazo a las dependencias de hateoas de primavera, existe una dependencia
spring-plugin-corecon la versión2.0.0.RELEASEpero uso de dependencia más presumido
spring-plugin-corecon la versión1.2.0.RELEASE.spring-boot tiene un conflicto en la creación de beans, por lo que debe unificar la
org.springframework.pluginversión para que Spring lo vea. Si elige2.0.0.RELEASEswagger, el bot podrá compilar,entonces la versión
1.2.0.RELEASEfuncionará para ambas dependencias, comoDespués de eso, necesita una clase de configuración para iniciar beans
swaggeryhateoasasí:fuente
Así que en realidad quería el soporte de hateoas y tuve el mismo problema. Resultó que esto sucede si tienes
en vez de
fuente
Si lo desea
Swagger, pero puede comprometerseHATEOAS, simplemente elimine la dependencia HATEOAS y agregue:fuente
Resuelto, estaba sucediendo debido a la integración cuando Swagger + HATEOAS se utilizó con Spring Boot 2.2.4.
y a continuación están las dependencias swagger
fuente
Eliminé estas dependencias como solución y trabajé:
por favor avíseme si funcionó para usted.
fuente
Para los
2.1.3.RELEASEusuarios de la versión de arranque Spring , las siguientes dependencias funcionan bien para hateoas + swagger:fuente
Este tipo de problema está ocurriendo debido a una nueva característica de Hateoas.
Si desea resolver este problema, simplemente incruste la siguiente línea de códigos en su archivo de configuración de swagger.
Creo que esto resolverá tu problema como resolvió el mío.
fuente