0

実行中のコンポーネントのホスト リストから以前に追加した 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 が発生します。

仮想ホストを削除し、ルーティング キャッシュを正しく更新するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

0

見つけた。通話中

 component.updateHosts()

トリックをしました。

于 2013-08-11T08:16:10.033 に答える