2016-11-15 306 views
2

我在獲取Zuul路由配置時遇到了一個小問題。下面是我目前Zuul路由定義

zuul: 
    routes: 
    microservice: 
     path: /service/* 
     serviceId: session 
     sensitiveHeaders: Cookie,Set-Cookie,Authorization 
microservice: 
    ribbon: 
    listOfServers: localhost:8090 

在微服務,我有一個Restcontroller這樣的:

@RestController 
@RequestMapping("/service") 

我有多個端點在RestController,例如:

@RequestMapping(method = { RequestMethod.GET}, value = "/service1", produces = "application/json") 

現在,當我發送了一個請求,如localhost:8080/service/service1,它沒有達到預期的終點。它將請求路由到localhost:8090/service1(沒有任何內容正在運行)。

它運作良好,如果我改變這樣

@RestController 
@RequestMapping("/service") 

@RestController 
@RequestMapping("/") 

我試圖從 路徑改變的路徑上下文路徑:/服務/ *

path: /service/** 

但沒有效果。

另一個選項是強制在過濾級別的路由,但我認爲應該可以將localhost:8080/service/service1直接路由到微服務。關於如何在Zuul配置中完成此任務的任何建議。

我無法使用URL選項,因爲它與我正在使用的回退不兼容。

回答

1

最簡單的方法是停止前綴剝離;看起來像默認啓用它。

path: /service/** 
stripPrefix: false