我正在尝试使用几类weblogic来监控应用程序性能。
在尝试查找weblogic的服务器端口(侦听http / https请求)信息时,我遇到了一些问题。
查看weblogic javadocs,可以使用ServerMBean的setListenPort(int port)来识别端口。但是,对所有已配置的服务器都会调用此方法。但是,当没有为Config.xml中的元素配置listen-port时,不会调用setListenPort。
当然,当没有配置listen-port时,MBean impl中的值默认为7001。
有没有更好的方法来查找weblogic的Web服务器端口?
答案 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和端口号管理控制台正在监听......