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