我想仅使用命令行来管理WebSphere Application Server中的某些内容,但是在获取已部署的应用程序和端口的列表时遇到了麻烦。
我想要的:
我需要获取我已部署应用程序及其端口的列表。我是WAS管理的新手,并且与Apache Web Server进行比较,我想要类似命令apachectl -t -D DUMP_VHOSTS
apachectl输出示例:
VirtualHost配置:
*:80 mysite.com(/etc/apache2/sites-enabled/site.conf:1)
*:443 secure.com(/etc/apache2/sites-enabled/secure.conf:2)
注意:我知道Apache和WAS不是同一件事(WAS和Apache Tomcat之间有更多相似之处),但这只是我想要的输出的一个示例:我的应用程序列表(apache示例中的虚拟主机) )及其各自的端口
到目前为止我所拥有的:
由于我需要从命令行执行此操作,因此我按照以下步骤(Debian Server)使用wsadmin shell:
cd <Was_Root_Dir>/AppServer/bin
./wsadmin.sh -lang jython -user user -password pass
wsadmin>print AddminApp.list()
结果如下:
DefaultApplication 现场 安全
这是我想要的列表,但是我不知道每个应用程序的端口,而且我找不到在任何地方实现它的方法。
我认为该列表很广泛,并且包括我的WAS实例的所有服务器和所有配置文件中的应用程序。我在这里吗?
加号:
列出所有已部署应用程序的列表就可以了,但是加号可能是仅过滤使用带有SSL安全端口的应用程序的一种方式。
有可能吗?我误会了吗?
答案 0 :(得分:1)
使用wsadmin listApplicationServerPorts命令列出端口,以便访问特定的应用程序。有关更多详细信息,请参阅IBM KC链接(listApplicationServerPorts)。
我已经为您准备了一个脚本,将以下内容复制并粘贴到文件(script.py)中,然后使用wsadmin运行它,如下所示
./ wsadmin.sh -lang jython-用户用户-password pass -f script.py
#Get the list of ALL installed APPs
appList=AdminApp.list().splitlines()
#Get the list of Application ports for each APP
for app in appList:
print " "
#print APP Name
print app
#Get the list of Application Ports
portList=AdminTask.listApplicationPorts(app).splitlines()
for port in portList:
#Print the port Details for the APP
print port
这将打印appName和applicationport列表。
在此列表中,“ WC_defaulthost ”端口可用于 http 和“ WC_defaulthost_secure ” ”表示 https 。