2016-08-11 4 views
0

현재 Websphere Liberty에서 Spring Boot 응용 프로그램을 실행 중이고 Consul for Service Discovery를 사용하고 있습니다. 영사와 함께 서비스를 등록하기 위해 필자는 응용 프로그램 수명주기 이벤트에 연결하고 등록/등록 취소를 수행하는 Liberty 기능을 만들었습니다. 위대한 작품이지만 그렇게함으로써 나는 자유와 결합하고있다. Spring-Cloud-Consul은이 문제를 해결할 수있는 것처럼 보이지만 임베디드 Tomcat 서버에서만 Liberty (영사와 연결) 서비스를 등록 할 수는 없습니다. Spring-Cloud-Consul 코드를 살펴본 후 EmbeddedServletContainerInitializedEvent가 실행되지 않아서 포트가 설정되지 않는 것이 문제입니다.Spring Cloud with Liberty

Spring Cloud Consul은 임베디드 서블릿 컨테이너에서만 작동합니까?

답변

0

알려진 문제입니다. PR을 제출해주십시오.

@Autowired(required = false) 
private ServerProperties serverProperties; 

@EventListener 
public void onApplicationReady(ApplicationReadyEvent event) { 
    this.setConfiguredPort(serverProperties.getPort()); 
    log.info("Application ready on port " + serverProperties.getPort()); 
    this.start(); 
} 

을 지금 내 서비스를 등록하고 예상대로 등록 취소 : https://github.com/spring-cloud/spring-cloud-consul/issues/173

+0

아, 답변 해 주셔서 감사합니다. 나는 옳은 길을 가고 있었다는 것을 알고있다. –

0

내 솔루션은 현지 스프링 클라우드 영사의 ConsulLifecycle 클래스를 가지고 그래서 같이 ApplicationReadyEvent를 추가했다.