【问题标题】:URL transport Validator ActiveMQURL 传输验证器 ActiveMQ
【发布时间】:2013-08-23 20:08:19
【问题描述】:

我对 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();

我想在设置BrokerURL 之前检查Url。 Uri 不是问题:
tcp://localhost:61616?transport.trace=false&transport.soTimeout=60000
,但是 urlValidator 太严格了,不接受像这样的 Uri:
故障转移:(tcp://localhost:61616,tcp://remotehost:61616)?initialReconnectDelay=100
扇出:(静态:(tcp://localhost:61616,tcp://remotehost:61616))?initialReconnectDelay=100
也许你知道答案?;)

【问题讨论】:

  • 这个“问题”不是很清楚。需要更多关于问题的解释以及您尝试过的信息等

标签: java validation jms activemq


【解决方案1】:

没有用于验证各种代理 URI 选项和传输选择的工具。你必须自己写一些东西。也许您可以通过消化 activemq.xsd 并查看允许的选项及其相关类型来创建一些东西。

【讨论】:

  • 你是对的,它不存在这样的工具或功能;)如果有人遇到同样的问题,你可以使用 apache.activemq.util 包中的 URISupport。该类包含 CompositeDataUri 类,它可以分离代理 Uri 选项、传输选择和参数。
猜你喜欢
  • 1970-01-01
  • 2021-05-25
  • 1970-01-01
  • 2013-04-25
  • 2011-02-03
  • 2012-08-11
  • 2021-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多