J'ai déployé deux instances weblogic managed sur un serveur. Ces deux instances utilisent des numéros de port différents, disons 7001 et 7002. Ma question est la suivante : comment obtenir le numéro de port dans le runtime ? Par exemple, si dans l'instance 1, je veux obtenir 7001, si dans l'instance 2, je veux obtenir 7002.
Réponses
Trop de publicités?Une solution simple consiste à utiliser WLST. Le script ci-dessous obtiendra les numéros de port de tous les serveurs dans votre domaine de serveur 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()
NOTE : Vous devrez probablement remplacer les espaces au début de l'avant-dernière ligne par un caractère de tabulation.
Ce script fonctionnera aussi bien sur les environnements Unix que Windows.
À partir d'une invite de commande wlst nom de script
La sortie d'un tel script ressemble :
Server Port SSL
AdminServer 7001 7002
bam_server1 9001 9002
osb_server1 7003 7004
soa_server1 8001 8002
Vous pouvez utiliser un script comme ceci
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 sera égal à 7001 ou 7002, ...
Utilisez JMX.
vous pouvez écrire un programme Java qui recherchera le MBean du RuntimeService.
"com.bea:Name=RuntimeService,Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean"
et à partir de là, vous pouvez consulter tous les membres du cluster, y compris l'administrateur.
et trouver leur adresse IP complète / DNS et leurs numéros de port.
Voici un premier exemple