WAS v8.5 > Script the application serving environment (wsadmin) > Configure applications using scripting

Modify WAR class loader mode using wsadmin.sh

We can use scripting and wsadmin to modify WAR class loader mode for applications.

Before starting this task, wsadmin must be running. See the Start the wsadmin scripting client using wsadmin.sh topic for more information. If an application is running, changing an application setting causes the application to restart. On stand-alone servers, the application restarts after you save the change. On multiple-server products, the application restarts after you save the change and files synchronize on the node where the application is installed. To control when synchronization occurs on multiple-server products, deselect Synchronize changes with nodes on the Console preferences page.

To modify WAR class loader mode for an application...

  1. Set a reference to the deployment.xml document. For example:

    • Jacl:

        set deployments [$AdminConfig getid /Deployment:my_application/]

      Example output:

      application_name(cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#Deployment_1276887608391)
    • Using Jython:

        deployments = AdminConfig.getid('/Deployment:my_application/')

  2. Set a reference to the deployedObject attribute within the deployment.xml document and set it to the deployedObject variable. For example:

    • Jacl:

        set deploymentObject [$AdminConfig showAttribute $deployments deployedObject]

      Example output:

      (cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#ApplicationDeployment_1276887608391)
    • Using Jython:

        deploymentObject = AdminConfig.showAttribute(deployments, 'deployedObject')

    Deployment configuration values. The following table describes the elements in this command.

    Element Definition
    deploymentObject Variable name
    AdminConfig WAS configuration
    deployments Variable to which deployment.xml is assigned
    deployedObject Attribute within deployment.xml

  3. List the modules for the deployedObject attribute and set the list to the myModules variable. For example:

    • Jacl:

        set myModules [lindex [$AdminConfig showAttribute $deploymentObject modules] 0]

      Example output:

      (cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#WebModuleDeployment_1276887608391) 
      (cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#EJBModuleDeployment_1276887608391)
    • Using Jython:

      myModules = AdminConfig.showAttribute(deploymentObject, 'modules')
      myModules = myModules[1:len(myModules)-1].split(" ")
      print myModules

      Example output:

      ['(cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#WebModuleDeployment_1276887608391)', 
      '(cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#EJBModuleDeployment_1276887608391)']

  4. Find the web module and set the mode for the class loader. For example:

    • Jacl:

      foreach module $myModules {
           if {[regexp WebModuleDeployment $module] == 1} {
              $AdminConfig modify $module {{classloaderMode mode}}}}
    • Using Jython

      for module in myModules:
           if (module.find('WebModuleDeployment')!= -1):
              AdminConfig.modify(module, [['classloaderMode', 'mode']])

    Deployment configuration values. The following table describes the elements in this command.

    Element Definition
    regexp is a function to use regular expression is used for searching within the previous commands
    module.find is a function to use regular expression is used for searching within the previous commands
    AdminConfig is an object that represents the WAS configuration
    modify is an AdminConfig command
    classloaderMode is an attribute within the deployment.xml document
    mode is the class loader mode value to set for the WAR module. The mode value is either PARENT_FIRST or PARENT_LAST. For more information, see the documentation about class loaders.

  5. Save the configuration, for example:

    • Jacl:

        $AdminConfig save
    • Using Jython:

        AdminConfig.save()

  6. Verify the changes made to the attribute value with the showall command. For example:

    • Jacl:

        $AdminConfig showall $module
    • Using Jython:

        AdminConfig.showall(module)

      Example output:

      {applicationDeployment (cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#ApplicationDeployment_1276887608391)}
      
      {classloader (cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#Classloader_1276887608392)}
      {classloaderMode mode}
      {configs {}}
      {deploymentId 1}
      {startingWeight 10000}
      {targetMappings {(cells/cell_name/applications/application_nameear/deployments/
      application_name|deployment.xml#DeploymentTargetMapping_1276887608392)}}
      {uri WAR_file_name.war}


Related concepts:

Class loaders


Related


Use the wsadmin scripting AdminConfig object for scripted administration


Reference:

Commands for the AdminConfig object using wsadmin.sh


+

Search Tips   |   Advanced Search