spring-boot-microservices-series
spring-boot-microservices-series copied to clipboard
springboot microservices gatewayservice routing issue
Environment Detail: spring boot version 2.6.6 spring-cloud-gateway-server 3.1.1.jar
Configuration in application.properties: spring.cloud.gateway.discovery.locator.enabled=true spring.cloud.gateway.discovery.locator.lowerCaseServiceId=true
Port Detail: ProductGatewayService: 5069 PssTitleService: 5071
With the above set up If I am invoking the below url I am getting proper response. http://localhost:5069/psstitleservice/api/productService/getTitleData - working fine
In actual scenario: I am having a context path with my gateway service. /cmdgservices With the context path, I have tried many things but none of the below way is working.
Way 1 : spring.cloud.gateway.discovery.locator.predicates[0].name: Path spring.cloud.gateway.discovery.locator.predicates[0].args[pattern]: "'/'+psstitleservice+'/**'"
Way 2 : spring.cloud.gateway.discovery.locator.predicates[0].name: Path spring.cloud.gateway.discovery.locator.predicates[0].args[pattern]: "'cmdgservices/'+psstitleservice+'/**'"
Way 3 : spring.cloud.gateway.discovery.locator.predicates[0].name: Path spring.cloud.gateway.discovery.locator.predicates[0].args[pattern]: "'cmdgservices/'+psstitleservice+'/**'" spring.cloud.gateway.discovery.locator.url-expression: 'lb://'+psstitleservice
Way 4 (In Java configuration): @Configuration public class ApiGatewayConfiguration { @Bean public RouteLocator gatewayRouter(RouteLocatorBuilder builder) { return builder.routes() .route("test_route", p -> p.path("/psstitleservice") .uri("http://localhost:5071")) .build(); }
I have already invested 3 days behind it. I would be grateful to any helping hand. Thanks in advance.