Weblogic中获取Server信息

在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

http://e-docs.bea.com/wls/docs81/jmx/overview.html

时间: 2024-09-17 03:37:55

Weblogic中获取Server信息的相关文章

完整删除ecshop中获取店铺信息的API_php实例

使用的版本是ECShop_V2.7.3_UTF8_release1106,按以下步骤可完整去除其中获取店铺信息的API接口. 一. 删除获取店铺信息的API 1. admin/index.php 搜索 "elseif ($_REQUEST['act'] == 'main_api')" ,删除,源文件 489 - 539 行. 此段功能是官方获取ecshop版本.语种.发布时间.PHP版本.数据库版本.编码.订单数量.商品数量.用户数量以及店铺主题.样式名称.店铺URL.补丁信息的api

Python中获取对象信息的方法_python

当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢?使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> type(123) <type 'int'> >>> type('str') <type 'str'> >>> type(None) <type 'NoneType'> 如果一个变量指向函数或者类,也可以用type()判断: >&g

如何servlet中获取请求信息

问题描述 我们知道服务器接收到get请求后,由servlet处理业务. 但反过来,在servlet中,能不能获取到当前的请求到底还带有什么参数呢? 在filter里又是如何获得这些请求的信息的呢?(本人以为设置断点的变量里能直接找到,但分支太多不知在哪里),请问有没有方便获取这些东西的便捷方法???(不得已才用代码获得) 解决方案 protected void service(HttpServletRequest req, HttpServletResponse resp)从req里面获取呀,很

关于android端message中获取ext信息的问题

问题描述 我们公司服务器会发送消息,并且在ext属性中存入类似[email]{@"user[/email]":用户信息,"publishTime":发送时间}的信息,ios直接用EMMessage.ext获得,但是android端没有类似的方法,无法取得ext,求解 解决方案 有的,http://www.easemob.com/docs/android/advanced/

Oracle中获取会话信息的两个函数分享_oracle

1. USERENV(OPTION)  返回当前的会话信息.  OPTION='ISDBA'若当前是DBA角色,则为TRUE,否则FALSE.  OPTION='LANGUAGE'返回数据库的字符集.  OPTION='SESSIONID'为当前会话标识符.  OPTION='ENTRYID'返回可审计的会话标识符.  OPTION='LANG'返回会话语言名称的ISO简记.  OPTION='INSTANCE'返回当前的实例.      OPTION='terminal'返回当前计算机名  S

关于在VC#中获取配置文件信息的问题

问题描述 <?xmlversion="1.0"encoding="utf-8"?><configuration><connectionStrings><addname="book1CnString"connectionString="DataSource=B7RFYV0VR5W8IW6;InitialCatalog=book1;IntegratedSecurity=True"provi

Linux中如何获取CPU信息

我们可以在 /proc/cpuinfo 中获取需要信息 1.当前 CPU 的型号 [root@ localhost  ~]# cat /proc/cpuinfo |grep "model name" |uniq model name      : AMD Opteron(tm) Processor 6140 2.当前 CPU 运行模式 [root@localhost tmp]# getconf LONG_BIT 32 说明当前 CPU 运行在32位环境下 3.当前 CPU 是否支持 6

SQL Server 2005中获取数据库文件大小信息

捕捉SQL Server 2005数据库大小的趋势,这是非常重要的,因为DBA们可以利用这些信息来规划未来的空间需求,问题的通知类型,并规划繁重负载的时间段.本文将介绍一种捕捉这一信息的简单的方法. SQL Server上的每个数据库都包含了关于数据库文件的大小的信息,连同其他一些相关信息.为了得到这个信息,我们需要一个方法来从单个数库中一次性检索出相关的数据. 有两个方法可以实现这个功能: sp_spaceused:这个系统存储过程将返回当前数据库中的表.索引视图或 SQL Server 20

RDS SQL Server死锁(Deadlock)系列之五利用Extended Events获取死锁信息

问题引入 在过去很长一段时间,不断有客人会问道:"在事先没有任何跟踪或者监控部署的情况下,阿里云RDS SQL Server有没有办法获取到历史死锁信息,供我们分析?".在写到RDS SQL Server死锁系列文章之五时,我们就可以使用Extended Events来解决这个问题. 分析问题 Extended Events是微软从SQL Server 2008版本开始引入的,其中有一个默认事件会话是system_health,它的作用是用来收集SQL Server发生的错误信息,以X