Mudei meu projeto da bota primavera 2.1.9 para a 2.2.0. Ao iniciar o projeto, estou enfrentando as error
mensagens abaixo .
O que poderia ter causado, também não estou usando hateoas
no meu pom.xml
arquivo.
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
fonte
fonte
mvn dependency:tree
e verifique se alguma outra coisa está causandoHateoas
dependência. IRC Se você usa o Spring Data REST que depende do Spring Hateoas.Respostas:
Eu tive esse problema com
Swagger + HATEOAS
meuspring-boot
aplicativo.A correção é fornecida abaixo (edite sua classe de configuração do Swagger):
fonte
_links
é transformadolinks
e_embedded
transformadocontent
na resposta; portanto, a maioria dos meus testes do mvcMock, verificando se_links
estão falhando, e a API é diferente do que é fornecido imediatamente com o spring-boot-starter- hateosHalLinkDiscoverer
classe em vez deCollectionJsonLinkDiscoverer
não fazer o truque e ainda assim meus testes falham porque os links são renderizados comolinks
e não_links
, assim como o conteúdo é renderizado comocontent
e não o esperado_embedded
@EnableHypermediaSupport(type=EnableHypermediaSupport.HypermediaType.HAL)
você deve incluirorg.springframework.hateoas.config.EnableHypermediaSupport
. Não tenho certeza se isso importa, mas eu tenho como uma dependência: spring-boot-starter-hateoasMelhor solução
Adicione o código abaixo na classe SwaggerConfig
fonte
Para mim, este link ajudou: https://github.com/spring-projects/spring-hateoas/issues/731
Em poucas palavras, eu adicionei às minhas dependências:
fonte
tente esta versão 2.6.1, eu já resolvo com esse caminho
fonte
O problema enfrentado comigo quando eu uso
com arrogância springfox
se você der uma olhada no ódio da primavera como dependências, existe uma dependência na
spring-plugin-core
versão2.0.0.RELEASE
mas dependência arrogância usar
spring-plugin-core
com versão1.2.0.RELEASE
.spring-boot tem conflito na criação do bean, então, você precisa unificar a
org.springframework.plugin
versão para que a spring a veja, se você escolher2.0.0.RELEASE
swagger, o bot será capaz de compilar,então a versão
1.2.0.RELEASE
funcionará para ambas as dependências, comoDepois disso, você precisa da classe de configuração para iniciar beans
swagger
ehateoas
assim:fonte
Então, na verdade, eu queria o ódio como suporte e tive o mesmo problema. Aconteceu que isso acontece se você tiver
ao invés de
fonte
Se você quiser
Swagger
, mas puder se comprometerHATEOAS
, basta remover a dependência do HATEOAS e adicionar:fonte
Resolvido, estava acontecendo devido à integração quando o Swagger + HATEOAS foi usado com o Spring Boot 2.2.4.
e abaixo estão as dependências arrogantes
fonte
Eu removi essas dependências como solução alternativa e trabalhei:
por favor me avise se funcionou para você.
fonte
Para
2.1.3.RELEASE
usuários da versão de inicialização Spring , as seguintes dependências funcionam bem para hateoas + swagger:fonte