2011-05-18 43 views
1

我正在嘗試使用幾個類別的weblogic來監視應用程序的性能。Weblogic.jar中的Weblogic服務器端口信息的位置

我在嘗試查找weblogic的服務器端口(即監聽http/https請求)信息時遇到了一些問題。

看着weblogic javadocs,ServerMBean的setListenPort(int port)可以用來識別端口。但是,這是爲所有配置的服務器調用的。但是,如果沒有爲Config.xml中的元素配置listen-port,則不會調用setListenPort。

當然,當沒有配置listen-port時,MBean impl中的值默認爲7001。

有沒有更好的方法來找到weblogic的Web服務器端口?

回答

0

我一直在尋找的地方是管理服務器啓動的輸出 - 日誌文件通常足以在「服務器狀態現在正在運行」消息之前留下記錄,該消息列出了IP和端口號管理控制檯正在監聽...

2

下面的代碼查詢的運行時環境它的URL的MBeanServer中運行:

JVMID jvmid = JVMID.localID(); 
    String serverName = jvmid.getServerName(); 
    String serverAddress = jvmid.getAddress(); 
    InitialContext ctx = new InitialContext(); 
    MBeanServer server = (MBeanServer) ctx.lookup("java:comp/env/jmx/runtime"); 
    // weblogic.management.configuration.ServerMBean 
    ObjectName objName = new ObjectName("com.bea:Name=" + serverName + ",Type=Server"); 
    // weblogic.management.configuration.SSLMBean 
    ObjectName sslObjName = new ObjectName("com.bea:Name=" + serverName + ",Type=SSL,Server=AdminServer"); 
    int port = (Integer) server.getAttribute(objName, "ListenPort"); 
    boolean https = (Boolean) server.getAttribute(sslObjName, "Enabled"); 
    return "http" + (https ? "s" : "") + "://" + serverAddress + ":" + port + "/";