List the modules in an installed application using wsadmin.sh
Use the AdminApp object listModules command to list the modules in an installed application.
We can run the listModules command to see what modules are in an installed application.
Tasks
- Start the wsadmin scripting tool.
- Display the application modules.
Use Jacl:
$AdminApp listModules DefaultApplication -serverUse Jython:
print AdminApp.listModules('DefaultApplication', '-server')
Element Description $ Jacl operator for substituting a variable name with its value Jython command AdminApp is an object that supports application object management listmodules is an AdminApp command DefaultApplication is the name of the application -server is an optional option specified Example output:
DefaultApplication#IncCMP11.jar+META-INF/ejb-jar.xml#WebSphere:cell=mycell,node=mynode,server=myserver DefaultApplication#DefaultWebApplication.war+WEB-INF/web.xml#WebSphere:cell=mycell,node=mynode,server=myserver
Example
The following example lists all of the modules on all of the enterprise applications installed on the server1 server in a node named node1.
An asterisk (*) means that the module is installed on server1 and node1 and another server or node. A plus sign (+) means that the module is installed on server1 and node1 only.
1 #----------------------------------------------------------------------------------- 2 # setting up variables to keep server name and node name 3 #------------------------------------------------------------------------------ 4 set serverName server1 5 set nodeName node1 6 #------------------------------------------------------------------------------- 7 # setting up 2 global lists to keep the modules 8 #-------------------------------------------------------------------------------- 9 set ejbList {} 10 set webList {} 11 12 #---------------------------------------------------------------------------------------- 13 # gets all deployment objects and assigned it to deployments variable 14 #----------------------------------------------------------------------------------------- 15 set deployments [$AdminConfig getid /Deployment:/] 16 17 #----------------------------------------------------------------------------------------- 18 # lines 22 thru 148 Iterates through all the deployment objects to get the modules 19 # and perform filtering to list application that has at least one module installed 20 # in server1 in node myNode 21 #----------------------------------------------------------------------------------------- 22 foreach deployment $deployments { 23 24 # ------------------------------------------------------------------------------------ 25 # reset the lists that hold modules for each application 26 #------------------------------------------------------------------------------------- 27 set webList {} 28 set ejbList {} 29 30 #------------------------------------------ 31 # get the application name 32 #------------------------------------------ 33 set appName [lindex [split $deployment (] 0] 34 35 #------------------------------------------ 36 # get the deployedObjects 37 #------------------------------------------ 38 set depObject [$AdminConfig showAttribute $deployment deployedObject] 39 40 #-------------------------------------------- 41 # get all modules in the application 42 #--------------------------------------------- 43 set modules [lindex [$AdminConfig showAttribute $depObject modules] 0] 44 45 #--------------------------------------------------------------------------------------------- 46 # initialize lists to save all the modules in the appropriate list to where they belong 47 #--------------------------------------------------------------------------------------------- 48 set modServerMatch {} 49 set modServerMoreMatch {} 50 set modServerNotMatch {} 51 52 #----------------------------------------------------------------------------------------- 53 # lines 55 to 112 iterate through all modules to get the targetMappings 54 #------------------------------------------------------------------------------------------ 55 foreach module $modules { 56 #-------------------------------------------------------------------------------------- 57 # setting up some flag to do some filtering and get modules for server1 on node1 58 #-------------------------------------------------------------------------------------- 59 set sameNodeSameServer "false" 60 set diffNodeSameServer "false" 61 set sameNodeDiffServer "false" 62 set diffNodeDiffServer "false" 63 64 #-------------------------------------------- 65 # get the targetMappings 66 #-------------------------------------------- 67 set targetMaps [lindex [$AdminConfig showAttribute $module targetMappings] 0] 68 69 #--------------------------------------------------------------------------------------- 70 # lines 72 to 111 iterate through all targetMappings to get the target 71 #--------------------------------------------------------------------------------------- 72 foreach targetMap $targetMaps { 73 #------------------------------ 74 # get the target 75 #------------------------------ 76 set target [$AdminConfig showAttribute $targetMap target] 77 78 #-------------------------------------------------- 79 # do filtering to skip ClusteredTargets 80 #-------------------------------------------------- 81 set targetName [lindex [split $target #] 1] 82 if {[regexp "ClusteredTarget" $targetName] != 1} { 83 set sName [$AdminConfig showAttribute $target name] 84 set nName [$AdminConfig showAttribute $target nodeName] 85 86 #---------------------------------------------- 87 # do the server name match 88 #---------------------------------------------- 89 if {$sName == $serverName} { 90 if {$nName == $nodeName} { 91 set sameNodeSameServer "true" 92 } else { 93 set diffNodeSameServer "true" 94 } 95 } else { 96 #--------------------------------------- 97 # do the node name match 98 #--------------------------------------- 99 if {$nName == $nodeName} { 100 set sameNodeDiffServer "true" 101 } else { 102 set diffNodeDiffServer "true" 103 } 104 } 105 106 if {$sameNodeSameServer == "true"} { 107 if {$sameNodeDiffServer == "true" || $diffNodeDiffServer == "true" || $diffNodeSameServer == "true"} { 108 break 109 } 110 } 111 } 112 } 113 114 #--------------------------------------------- 115 # put it in the appropriate list 116 #--------------------------------------------- 117 if {$sameNodeSameServer == "true"} { 118 if {$diffNodeDiffServer == "true" || $diffNodeSameServer == "true" || $sameNodeDiffServer == "true"} { 119 set modServerMoreMatch [linsert $modServerMoreMatch end [$AdminConfig showAttribute $module uri]] 120 } else { 121 set modServerMatch [linsert $modServerMatch end [$AdminConfig showAttribute $module uri]] 122 } 123 } else { 124 set modServerNotMatch [linsert $modServerNotMatch end [$AdminConfig showAttribute $module uri]] 125 } 126 } 127 128 129 #---------------------------------------------------------------- 130 # print the output with some notation as a mark 131 #---------------------------------------------------------------- 132 if {$modServerMatch != {} || $modServerMoreMatch != {}} { 133 puts stdout "\tApplication name: $appName" 134 } 135 136 #--------------------------------------------------------- 137 # do grouping to appropriate module and print 138 #--------------------------------------------------------- 139 if {$modServerMatch != {}} { 140 filterAndPrint $modServerMatch "+" 141 } 142 if {$modServerMoreMatch != {}} { 143 filterAndPrint $modServerMoreMatch "*" 144 } 145 if {($modServerMatch != {} || $modServerMoreMatch != {}) "" $modServerNotMatch != {}} { 146 filterAndPrint $modServerNotMatch "" 147 } 148} 149 150 151 proc filterAndPrint {lists flag} { 152 global webList 153 global ejbList 154 set webExists "false" 155 set ejbExists "false" 156 157 #-------------------------------------------------------------------------------------- 158 # If list already exists, flag it so as not to print the title more then once 159 # and reset the list 160 #--------------------------------------------------------------------------------------- 161 if {$webList != {}} { 162 set webExists "true" 163 set webList {} 164 } 165 if {$ejbList != {}} { 166 set ejbExists "true" 167 set ejbList {} 168 } 169 170 #------------------------------------------------------------------ 171 # do some filtering for web modules and ejb modules 172 #------------------------------------------------------------------ 173 foreach list $lists { 174 set temp [lindex [split $list .] 1] 175 if {$temp == "war"} { 176 set webList [linsert $webList end $list] 177 } elseif {$temp == "jar"} { 178 set ejbList [linsert $ejbList end $list] 179 } 180 } 181 182 #--------------------------------------- 183 # sort the list before printing 184 #--------------------------------------- 185 set webList [lsort -dictionary $webList] 186 set ejbList [lsort -dictionary $ejbList] 187 188 #---------------------------------------------------------------- 189 # print out all the web modules installed in server1 190 #---------------------------------------------------------------- 191 if {$webList != {}} { 192 if {$webExists == "false"} { 193 puts stdout "\t\tWeb Modules:" 194 } 195 foreach web $webList { 196 puts stdout "\t\t\t$web $flag" 197 } 198 } 199 200 #-------------------------------------------------------------- 201 # print out all the ejb modules installed in server1 202 #-------------------------------------------------------------- 203 if {$ejbList != {}} { 204 if {$ejbExists == "false"} { 205 puts stdout "\t\tEJB Modules:" 206 } 207 foreach ejb $ejbList { 208 puts stdout "\t\t\t$ejb $flag" 209 } 210 } 211} Example output for server1 on node node1: Application name: TEST1 EJB Modules: deplmtest.jar + Web Modules: mtcomps.war * Application name: TEST2 Web Modules: mtcomps.war + EJB Modules: deplmtest.jar + Application name: TEST3 Web Modules: mtcomps.war * EJB Modules: deplmtest.jar * Application name: TEST4 EJB Modules: deplmtest.jar * Web Modules: mtcomps.war
Subtopics
- Example: Listing the modules in an application server
This example lists all of the modules on all of the enterprise applications installed on the server1 server in a node named node1.
Commands for the AdminApp object