2015-12-08 101 views
0

如果我做調用它就像一個魅力的自動裝配Autowired RestTemplate:
得到http://localhost:18990/microservice2/(服務註冊表):春季雲+蝴蝶結+尤里卡(服務註冊)或相對URL(RELS)

{ 
    "_links": { 
     "hl:echo": { "href": "http://localhost:18989/microservice2/echo?echoMessage={echoMessage}", "templated": true }, 
     "curies": 
     [ { 
         "href": "/microservice2/generated-docs/api-guide.html#resources-{rel}", 
         "name": "hl", 
         "templated": true 
      } 
     ] 
    } 
} 

從微服務1(主叫使用RestTemplate微服務2):

@Autowired 
private RestTemplate restTemplate; 
URI targetUrl = UriComponentsBuilder.fromUriString("http://microservice2") 
    .path("/microservice2/echo") 
    .queryParam("echoMessage", "echoMessage") 
    .build() 
    .toUri(); 
EchoMessageResource response = restTemplate.getForObject(targetUrl, EchoMessageResource.class); 

功能區確實使用Eureka來到幕後的真實服務器。

如果我添加一個rel然後它不起作用。我得到一個404
FROM:

URI targetUrl = UriComponentsBuilder.fromUriString("http://microservice2") 
    .path("/microservice2/echo") 
    .queryParam("echoMessage", "echoMessage") 
    .build() 
    .toUri(); 

TO:

URI targetUrl = UriComponentsBuilder.fromUriString("http://microservice2") 
    .path("/microservice2/hl:echo") 
    .queryParam("echoMessage", "echoMessage") 
    .build() 
    .toUri(); 
EchoMessageResource response = restTemplate.getForObject(targetUrl, EchoMessageResource.class); 

KO

什麼是用一個相對的方式?在我的例子中,hl:echo。

+0

路徑'/ microservice2/hl:echo'真的能解決任何問題嗎? – spencergibb

+0

@spencergibb:它沒有。它來自IndexController,使用ResourceSupport。例如: 'resource.add(ParameterOfControllerLinkBuilder.linkTo(methodOn(EchoController.class).doEcho(「」,null))。withRel(ECHO_REL));'但是如果RestTemplate + Ribbon + Eureka給了我一些魔力,他們應該支持我通過REL的事實。 [Spring Hateoas客戶端支持文檔在這裏](http://docs.spring.io/spring-hateoas/docs/0.19.0.RELEASE/reference/html/#client) –

+0

然後答案是否定的,春天的雲不'對春天的仇恨一無所知。 – spencergibb

回答

相關問題