我创建了一个UAA服务器:
1
我创建了一个Microservicio网关:
? (1/16) Which *type* of application would you like to create? [BETA] JHipster UAA server (for microservice OAuth2 authentication)
我在容器网关中收到以下错误跟踪:
? (1/16) Which *type* of application would you like to create? Microservice gateway
...
? (6/16) What is the folder path of your UAA application?. ../elseruaa
非常感谢你的帮助。
答案 0 :(得分:2)
我创建了一个youtube截屏视频,展示了如何使用UAA创建jhipster(3.5.1)微服务。我相信您遇到的问题与服务启动的顺序有关,或者旧的服务没有使用3.5.0+代码重新生成。正如您在截屏视频和github上的源代码中看到的那样,它可以正常工作。
答案 1 :(得分:1)
我有同样的问题。花了几个小时后,最后通过在MicroserviceSecurityConfiguration.java中添加以下内容来修复错误:
注入org.springframework.cloud.client.discovery.DiscoveryClient
@Inject
private DiscoveryClient discoveryClient;
在MicroserviceSecurityConfiguration.java的任何方法中(我选择getKeyFromAuthorizationServer方法),添加以下内容:
discoveryClient.getServices();
答案 2 :(得分:0)
Caused by: java.lang.IllegalStateException: No instances available for elseruaa
。
我无法获得我们的uaa支持,但似乎您的网关无法在已注册到您的JHipster注册表(Eureka服务器)的Eureka客户端列表中找到名为elseruaa
的服务。所以要么你忘了启动elseruaa,要么注册了其他名字。
答案 3 :(得分:0)
更改您的MobileSecurityConfiguration
@Inject
private DiscoveryClient discoveryClient;
private String getKeyFromAuthorizationServer() {
List<String> services = discoveryClient.getServices();
HttpEntity<Void> request = new HttpEntity<Void>(new HttpHeaders());
String value = (String) this.keyUriRestTemplate
.exchange("http://uaa/oauth/token_key", HttpMethod.GET, request, Map.class).getBody()
.get("value");
return value;
}
所以基本上只有一行:
List<String> services = discoveryClient.getServices();
解决了这个问题。