从哪里获取weblogic.jar中的Weblogic服务器端口信息

时间:2011-05-18 07:06:08

标签: class weblogic port

我正在尝试使用几类weblogic来监控应用程序性能。

在尝试查找weblogic的服务器端口(侦听http / https请求)信息时,我遇到了一些问题。

查看weblogic javadocs,可以使用ServerMBean的setListenPort(int port)来识别端口。但是,对所有已配置的服务器都会调用此方法。但是,当没有为Config.xml中的元素配置listen-port时,不会调用setListenPort。

当然,当没有配置listen-port时,MBean impl中的值默认为7001。

有没有更好的方法来查找weblogic的Web服务器端口?

2 个答案:

答案 0 :(得分:2)

以下代码在MBeanServer中查询其运行的运行时环境的URL:

    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 + "/";

答案 1 :(得分:0)

我一直看的地方是管理服务器启动的输出 - 日志文件通常足以在“服务器状态现在正在运行”消息之前留下记录,该消息列出了该服务器的IP和端口号管理控制台正在监听......