0

我对 Uri 有一个小问题。我不知道如何验证包含:故障转移、静态、虚拟机、代理、扇出的 Uri,当然我可以使用 org.apache.commons.validator 包中的 URLValidator 验证包含 tcp、udp、ssl 的 Uri。我正在查看 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();

我想在 setBrokerURL 之前检查 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 回答