如何在运行时获取weblogic托管服务器监听端口?

时间:2012-03-26 09:07:45

标签: java weblogic port listen

我在一台服务器上部署了两个weblogic托管实例。这两个实例使用不同的端口号,比方说7001和7002.我的问题是如何在运行时获取端口号?例如,如果在intance1中,我想获得7001,如果在instance2中,我想获得7002。

3 个答案:

答案 0 :(得分:5)

一个简单的解决方案是使用WLST。下面的脚本将获取WebLogic服务器域中所有服务器的端口号。

#!/usr/bin/python

connect('weblogic','password','t3://localhost:7001')
domainConfig()
servers = cmo.getServers()
print "Server\t\tPort\tSSL"
for server in servers:
        print server.name + "\t" + str(server.getListenPort()) + "\t" + str(server.getSSL().getListenPort())
disconnect()

注意:您可能必须使用制表符替换倒数第二行开头的空格。

此脚本在Unix或Windows环境中同样有效。

从命令提示符处 wlst scriptName

这种脚本的输出类似于:

Server          Port    SSL
AdminServer     7001    7002
bam_server1     9001    9002
osb_server1     7003    7004
soa_server1     8001    8002

答案 1 :(得分:4)

您可以使用这样的脚本

export IDM_WLS_DOMAIN=IDMDomain 
export IDM_DOMAIN_HOME="$FMW_HOME/user_projects/domains/$IDM_WLS_DOMAIN"
...
export IDM_WLS_ADMIN_PORT=`cat $IDM_DOMAIN_HOME/bin/startManagedWebLogic.sh | grep 'ADMIN_URL="http' | cut -d '"' -f2 | cut -d ':' -f3`

- > IDM_WLS_ADMIN_PORT将等于7001或7002,...

答案 2 :(得分:2)

使用JMX。

你可以编写一个java程序来查找RuntimeService MBean

“com.bea:名称= RuntimeService,类型= weblogic.management.mbeanservers.runtime.RuntimeServiceMBean”

从中您可以查找群集的所有成员,包括Admin。

找到他们完整的IP地址/ DNS和端口号

这是一个入门示例

http://middlewaremagic.com/weblogic/?p=210