0
votes

We have deployed an ear file to our WebSphere instance. By default, all *.jar & *.war modules are mapped to the jvm.

We would like to map all the *.war modules also to the web server.

I have created the below jython script to map the additional modules to the web server:

modules = AdminApp.listModules('${p:appName}', '-server')
splitted = modules.splitlines()

for moduleLine in splitted:
  print "Mapping module: " + moduleLine
  appName, moduleUri, target = moduleLine.split("#")

  print appName
  print moduleUri
  print target

  if moduleUri.find('.war') >= 0:
    print "It's a war: " + moduleUri
    module, webXml = moduleUri.split("+")
    print module
    print webXml
    AdminApp.edit('${p:appName}', ['-MapModulesToServers', [[module, module + ',' + webXml, target]]])

The above script works when the name of the module is the same name as referenced in the uri. However, in some cases, the web.xml contains another name as 'display name'. When we do a -MapModulesToServers, it seems to look at the display name of the module, not the uri.

For example:

In the WebSphere console, we would have the following line:

Module       URI                                             Module type
Demo         be.fictive.company.demo.war,WEB-INF/web.xml     Web Module

The 'AdminApp.listModules' method is returning the uri name (be.fictive.company.demo.war), whereas I need the name of the module (Demo).

Am I missing something or is there another way to retrieve the module name, so I can use the AdminApp.edit('${p:appName}', ['-MapModulesToServers', [[module, module + ',' + webXml, target]]]) to update the targets?

The administrative scripting console is not available, so I don't see a way to retrieve the commands that have been issued.

1

1 Answers

0
votes

You can use the wildcat to match the name of the module. Replace

AdminApp.edit('${p:appName}', ['-MapModulesToServers', [[module, module + ',' + webXml, target]]])

with

AdminApp.edit('${p:appName}', ['-MapModulesToServers', [['.*', module + ',' + webXml, target]]])