実行中のコンポーネントのホスト リストから以前に追加した VirtualHost を削除しても、仮想ホストは引き続き使用されます。
Component component = new Component();
component.getServers().add(Protocol.HTTP, 8080);
component.getDefaultHost().attachDefault(DefaultResource.class);
VirtualHost host = new VirtualHost(new Context());
host.setHostDomain("myhost\\.org");
host.attachDefault(MyHostResource.class);
component.getHosts().add(host);
component.start();
Thread.currentThread().sleep(5000);
System.out.println("Stopping myhost");
component.getHosts().remove(host);
5 秒後、 http://myhost.orgへの GET クエリは DefaultResource の出力を提供するはずですが、最初の 5 秒間に GET を送信した後にのみ MyHostResource の出力を提供し続けます。一部のルーティング情報はキャッシュに保持されているようです。
現在、VirtualHosts の動的な挿入/削除を行う OSGi アプリケーションを構築しています。しかし、仮想ホストが正しく切断されていない場合、結果として ServiceUnavailableExeptions が発生します。
仮想ホストを削除し、ルーティング キャッシュを正しく更新するにはどうすればよいですか?
ありがとう!