Tomcat启动时获取访问地址和端口号

遇到一个单节点多实例部署的情况,且配置文件部署平台统一管理了,在这种情况下想到用端口号区分具体实例下载。搜了一圈发现都是一个版本且存在问题的源码,干脆自己搞了一个。废话不说了,直接上源码。

Java代码    收藏代码
  1. List<String> getEndPoints() throws MalformedObjectNameException,  
  2.         NullPointerException, UnknownHostException, AttributeNotFoundException,  
  3.         InstanceNotFoundException, MBeanException, ReflectionException {  
  4.     MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();  
  5.     Set<ObjectName> objs = mbs.queryNames(new ObjectName("*:type=Connector,*"),  
  6.             Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));  
  7.     String hostname = InetAddress.getLocalHost().getHostName();  
  8.     InetAddress[] addresses = InetAddress.getAllByName(hostname);  
  9.     ArrayList<String> endPoints = Lists.newArrayList();  
  10.     for (Iterator<ObjectName> i = objs.iterator(); i.hasNext(); ) {  
  11.         ObjectName obj = i.next();  下载
  12.         String scheme = mbs.getAttribute(obj, "scheme").toString();  
  13.         String port = obj.getKeyProperty("port");  
  14.         for (InetAddress addr : addresses) {  
  15.             String host = addr.getHostAddress();  
  16.             String ep = scheme + "://" + host + ":" + port;  
  17.             endPoints.add(ep);  
  18.         }  
  19.     }  
  20.     return endPoints;  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值