我对 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
也许你知道答案?;)