0

Uri には小さな問題があります。次を含むUriを検証する方法がわかりません:failover、static、vm、broker、fanout、もちろん、tcp、udp、sslを含むUriをorg.apache.commons.validatorパッケージのURLValidatorで検証できます。ActiveMQ のドキュメントを見ていましたが、この問題を解決するものは見つかりませんでした。ActiveMQ に接続する前に、Uri を確認する必要があります。次に例を示します。

String url = "failover:(tcp://localhost:61616,tcp://remotehost:61616)?initialReconnectDelay=100";
UrlValidator urlValidator = new UrlValidator(UrlValidator.ALLOW_ALL_SCHEMES);
urlValidator.isValid(url); 
ActiveMQConnectionFactory activemg = new ActiveMQConnectionFactory();
activemg.setBrokerURL(url);
activemg.createConnection();

BrokerURL を設定する前に Url を確認したい。Uri には問題ありません:
tcp://localhost:61616?transport.trace=false&transport.soTimeout=60000
ですが、urlValidator が厳しすぎて、次のような Uri を受け入れません:
failover:(tcp://localhost:61616, tcp://remotehost:61616)?initialReconnectDelay=100 fanout:
(static:(tcp://localhost:61616,tcp://remotehost:61616))?initialReconnectDelay=100
たぶん答えがわかりますか?;)

4

1 に答える 1

0

さまざまなブローカー URI オプションとトランスポートの選択を検証するためのツールはありません。自分で何かを書かなければなりません。おそらく、activemq.xsd を消化して、許可されているオプションとそれに関連付けられているタイプを確認することで、何かを作成できます。

于 2013-08-22T10:17:35.033 に答える