Failed to bind properties under 'spring.cloud.gateway' to org.springframework.cloud.gateway.config.GatewayProperties:


問題springcloud getway配置文件加載失敗

問題一

Description:

Failed to bind properties under 'spring.cloud.gateway' to org.springframework.cloud.gateway.config.GatewayProperties:

    Reason: HV000083: The specified annotation javax.validation.constraints.NotNull defines no attribute 'groups'.

Action:

Update your application's configuration

問題二

Failed to bind properties under 'spring.cloud.gateway.routes[0].filters[0]' to org.springframework.cloud.gateway.filter.FilterDefinition:

    Property: spring.cloud.gateway.routes[0].filters[0]
    Value: StripPrefix=1
    Origin: class path resource [application.yml]:19:15
    Reason: HV000083: The specified annotation javax.validation.constraints.NotNull defines no attribute 'groups'.

Action:

Update your application's configuration

application.yml

server:
  port: 9527

spring:
  application:
    name: getway-server
  cloud:
    gateway:
#      discovery:
#        locator:
#          enabled: true
      routes:
        - id: author-server
          uri: https://localhost:8888 #轉發后的地址
          predicates:
            - Path=/author/**
          filters:
            - StripPrefix=1
#eureka:
#  client:
#    serviceUrl: #注冊服務到eureka集群
#      defaultZone: http://eureka8761.com:8761/eureka,http://eureka8762.com:8762/eureka,http://eureka8763.com:8763/eureka
#  instance:
#    instance-id: ${spring.application.name}:${server.port}
#    prefer-ip-address: true     #訪問路徑可以顯示IP地址

原因

1、配置文件名稱不對
應為application.yml

2、依賴導入有問題
getway自動配置源碼
GatewayAutoConfiguration.java

@Configuration(proxyBeanMethods = false)
	@ConditionalOnClass(Health.class)
	protected static class GatewayActuatorConfiguration {

		@Bean
		@ConditionalOnProperty(name = "spring.cloud.gateway.actuator.verbose.enabled",
				matchIfMissing = true)//默認為true
		@ConditionalOnAvailableEndpoint
		public GatewayControllerEndpoint gatewayControllerEndpoint(
				List<GlobalFilter> globalFilters,
				List<GatewayFilterFactory> gatewayFilters,
				List<RoutePredicateFactory> routePredicates,
				RouteDefinitionWriter routeDefinitionWriter, RouteLocator routeLocator) {
			return new GatewayControllerEndpoint(globalFilters, gatewayFilters,
					routePredicates, routeDefinitionWriter, routeLocator);
		}

		@Bean
		@Conditional(OnVerboseDisabledCondition.class)
		@ConditionalOnAvailableEndpoint
		public GatewayLegacyControllerEndpoint gatewayLegacyControllerEndpoint(
				RouteDefinitionLocator routeDefinitionLocator,
				List<GlobalFilter> globalFilters,
				List<GatewayFilterFactory> gatewayFilters,
				List<RoutePredicateFactory> routePredicates,
				RouteDefinitionWriter routeDefinitionWriter, RouteLocator routeLocator) {
			return new GatewayLegacyControllerEndpoint(routeDefinitionLocator,
					globalFilters, gatewayFilters, routePredicates, routeDefinitionWriter,
					routeLocator);
		}

	}

默認開啟getway執行器配置。但沒有導入相應的依賴。

pom.xml

    <dependencies>
        <!--gateway 網關依賴,內置webflux 依賴 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
    </dependencies>

需導入spring-boot-starter-actuator
pom.xml

    <dependencies>
        <!--gateway 網關依賴,內置webflux 依賴 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>

執行成功

測試一下是否轉發成功
正常訪問

使用getway轉發


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM