in28minutes / spring-microservices

Microservices using Spring Boot, Spring Cloud, Docker and Kubernetes
https://www.udemy.com/course/microservices-with-spring-boot-and-spring-cloud/
MIT License
1.8k stars 2.73k forks source link

springboot microservices gatewayservice routing issue #23

Open deepak-Jenkins opened 2 years ago

deepak-Jenkins commented 2 years ago

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.