2016-08-11 20 views
0

私は現在Websphere Liberty内でSpringブートアプリケーションを実行しており、Consul for Service Discoveryを使用しています。 Consulにサービスを登録するために、アプリケーションライフサイクルイベントにフックして登録/登録解除を行うLiberty機能を作成しました。これは素晴らしいですが、そうすることによって、私は自分自身をリバティーにつなげています。 Spring-Cloud-Consulはその問題を解決するかもしれないようですが、Embedded Tomcat ServerのみでLiberty(Consulに接続します)とサービスを登録することはできません。 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を追加しました。