当前位置: 首页 > 图文教程 > 服务器 > WebLogic > Weblogic中获取Server信息

WebLogic
最大化WebLogic集群性能、可用性和安全
WebLogic的初步研究
WebLogic下JSP连接数据库
Weblogic和Hibernate 的集成问题
在Weblogic上配置Hibernate为JNDI
配置WebLogic Server集群
Weblogic的结构特点
Weblogic实体bean的承诺
快速配置weblogic8.X的应用目录
WebLogic:weblogic下连接处的配置使用
WebLogic:Weblogic服务器性能调优
WebLogic Server 性能调优
Weblogic:WebLogic 你了解多少?
WebLogic:Weblogic6.0经验之谈
WebLogic:小编对WebLogic讲述

WebLogic 中的 Weblogic中获取Server信息


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 161 ::
收藏到网摘: n/a

在J2EE中我们经常需要获取到当前server的host和port等信息,比如在结构复杂的EJB程序中,进行一些remote调用,或者访问本机中的一个webservice组件,在weblogic中,如果设置了ListenAddress,那么localhost这个主机名是不可访问的,我们可以通过MBean去获取到server的信息,以获取server的ip和port为例:
  
  ObjectName rs = null;
  MBeanServer mbeanServer= (MBeanServer)context.lookup("java:comp/env/jmx/runtime");
  String RUNTIME_SERVICE_MBEAN = "com.bea:Name=RuntimeService,Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean";
  rs = new ObjectName(RUNTIME_SERVICE_MBEAN);
  ObjectName serverrt = (ObjectName) mbeanServer.getAttribute(rs, "ServerRuntime");

  String listenAddr = (String)mbeanServer.getAttribute(serverrt, "ListenAddress");
  String[] tempAddr = listenAddr.split("/");
  if (tempAddr.length == 1) {
     listenAddr = tempAddr[0];
  } else if (tempAddr[tempAddr.length - 1].trim().length() != 0) {
     listenAddr = tempAddr[tempAddr.length - 1];
  } else if (tempAddr.length > 2) {
     listenAddr = tempAddr[tempAddr.length - 2];
  }
  String listenPort = String.valueOf(mbeanServer.getAttribute(serverrt, "ListenPort"));
   由于ListenAddress获取到的可能是weblogic的t3的url,所以应该对该address进行拆分,取最后一部分可用的地址即可。
   通过获取的ServerReference,我们可以得到更多的server信息,可参考weblogic的相关文档:
   http://download.oracle.com/docs/cd/E11035_01/wls100/wlsmbeanref/core/index.html