[转帖]Weblogic中获取Server信息_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3391 | 回复: 0   主题: [转帖]Weblogic中获取Server信息        下一篇 
linjun
注册用户
等级:中校
经验:2221
发帖:176
精华:2
注册:2013-1-6
状态:离线
发送短消息息给linjun 加好友    发送短消息息给linjun 发消息
发表于: IP:您无权察看 2013-1-8 11:03:19 | [全部帖] [楼主帖] 楼主

在J2EE中我们经常需要获取到当前server的host和port等信息,比如在结构复杂的EJB程序中,进行一些remote调用,或者访问本机中的一个webservice组件,在weblogic中,如果设置了ListenAddress,那么localhost这个主机名是不可访问的,我们可以通过MBean去获取到server的信息,以获取server的ip和port为例:

  1. ObjectName rs = null;
  2.  MBeanServer mbeanServer= (MBeanServer)context.lookup("java:comp/env/jmx/runtime");
  3.  String RUNTIME_SERVICE_MBEAN = "com.bea:Name=RuntimeService,Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean";
  4.  rs = new ObjectName(RUNTIME_SERVICE_MBEAN);
  5.  ObjectName serverrt = (ObjectName) mbeanServer.getAttribute(rs, "ServerRuntime");
  6.  String listenAddr = (String)mbeanServer.getAttribute(serverrt, "ListenAddress");
  7.  String[] tempAddr = listenAddr.split("/");
  8.  if (tempAddr.length == 1) {
  9.       
  10.        listenAddr = tempAddr[0];
  11.       
  12.  } else if (tempAddr[tempAddr.length - 1].trim().length() != 0) {
  13.       
  14.        listenAddr = tempAddr[tempAddr.length - 1];
  15.       
  16.  } else if (tempAddr.length > 2) {
  17.       
  18.        listenAddr = tempAddr[tempAddr.length - 2];
  19.       
  20.  }
  21.  String listenPort = String.valueOf(mbeanServer.getAttribute(serverrt,
  22.  "ListenPort"));由于ListenAddress获取到的可能是weblogic的t3的url,所以应该对该address进行拆分,取最后一部分可用的地址即可。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论