You can export an asset from the current session so that you can back up the asset, import the asset to another session, and so on. An asset represents at least one binary file that implements business logic.
This task assumes a basic familiarity with command framework programming. Read about command framework programming in the application programming interfaces documentation.
This task assumes that you have already imported an asset.
You can export an asset using programming, the administrative console, or the wsadmin tool. This topic describes how to export an asset using programming.
You must provide an assetID parameter value and a file name parameter value to export an asset. The assetID parameter identifies the asset you want to export. An asset ID can take a number of forms. The list below shows various forms for an asset named asset1.jar.
The filename parameter specifies a file system file name and location for the exported asset. Specify a fully qualified file path for the file name parameter because the results with relative path names are unpredictable. If you specify a file name parameter of a file that already exists, the file is overwritten with the exported asset.
Perform the following tasks to export an asset from a business-level application using programming.
The following example shows how to export an asset from a business-level application based on the previous steps.
Some statements are split on multiple lines for printing purposes.
package com.ibm.ws.management.application.task; import java.util.Properties; import com.ibm.websphere.management.AdminClient; import com.ibm.websphere.management.AdminClientFactory; import com.ibm.websphere.management.Session; import com.ibm.websphere.management.cmdframework.AdminCommand; import com.ibm.websphere.management.cmdframework.CommandMgr; import com.ibm.websphere.management.cmdframework.CommandResult; import com.ibm.websphere.management.cmdframework.TaskCommand; import com.ibm.websphere.management.async.client.AsyncCommandClient; public class ExportAsset { public static void main(String [] args) { try { // Connect to the application server. // This step is optional if you use the local // command manager. Comment out the lines to and including // CommandMgr cmdMgr = CommandMgr.getClientCommandMgr( // soapClient); // to get the soapClient soap client if you use the local // command manager. String host = "localhost"; String port = "8880"; // Change to your port number if it is // not 8880. Properties config = new Properties(); config.put(AdminClient.CONNECTOR_HOST, host); config.put(AdminClient.CONNECTOR_PORT, port); config.put(AdminClient.CONNECTOR_TYPE, AdminClient.CONNECTOR_TYPE_SOAP); System.out.println("Config: " + config); AdminClient soapClient = AdminClientFactory.createAdminClient(config); // Create the command manager. CommandMgr cmdMgr = CommandMgr.getClientCommandMgr(soapClient); // Comment out the previous lines to create a client command // manager if you are using a local command manager. // Uncomment the following line to create a local command // manager: // // CommandMgr cmdMgr = CommandMgr.getCommandMgr(); System.out.println("\nCreated command manager"); // Optionally create an asynchronous command handler. // Comment out the following line if no further handling // of command notification is required: AsyncCmdTaskHandler listener = new AsyncCmdTaskHandler(); // Create an asynchronous command client. // Set up the session. String id = Long.toHexString(System.currentTimeMillis()); String user = "content" + id; Session session = new Session(user, true); // If no command handler is used, replace the following listener with // null for the AsyncCommandClient object. AsyncCommandClient asyncCmdClientHelper = new AsyncCommandClient(session, listener); System.out.println("\nCreated async command client"); // Create command that exports the asset. String cmdName = "exportAsset"; AdminCommand cmd = cmdMgr.createCommand(cmdName); cmd.setConfigSession(session); // Export as asset // using the session created. System.out.println("\nCreated " + cmdName); // (required) Set the assetID parameter to the composition // unit that you are exporting. // Examples of valid formats for the assetID parameter are: // - aName // - assetname=aName // - WebSphere:assetname=aName // This parameter accepts an incomplete ID as long as // the incomplete ID can resolve to a unique asset // within the business-level application. String assetID = "test5.zip"; cmd.setParameter("assetID", assetID); System.out.println("\nSet assetID parameter to " + cmd.getParameter("assetID")); // Set the file name for the asset to be exported. Use a // fully qualified path name. An existing file with the specified // name will be overwritten.
DownloadFile filename = new DownloadFile("/assets/asset1.zip");
cmd.setParameter("filename", filename); System.out.println("\nSet filename parameter to " + cmd.getParameter("filename")); // Call the asynchronous client helper to process parameters. try { asyncCmdClientHelper.processCommandParameters(cmd); System.out.println("\nCompleted process command " + "parameters"); } catch (Throwable th) { System.out.println("Failed from " + "asyncCmdClientHelper.processCommandParameters(cmd)."); th.printStackTrace(); System.exit(-1); } // Call the asynchronous command client to run the command. asyncCmdClientHelper.execute(cmd); System.out.println("\nCompleted running of the command"); // Check the command result. CommandResult result = cmd.getCommandResult(); if (result != null) { if (result.isSuccessful()) { System.out.println("\nCommand ran successfully " + "with result\n" + result.getResult()); } else { System.out.println("\nCommand ran with " + "Exception"); result.getException().printStackTrace(); } } } catch (Exception e) { e.printStackTrace(); } } } package com.ibm.ws.management.application.task; import com.ibm.websphere.management.cmdframework.provider.CommandNotification; import com.ibm.websphere.management.async.client.AsyncCommandHandlerIF; public class AsyncCmdTaskHandler implements AsyncCommandHandlerIF { public void handleNotification(CommandNotification notification) { // Add your own code here to handle the received notification System.out.println("\nEXAMPLE: notification received: " + notification); } }
You can import the asset to another session. You can complete other tasks associated with assets, such as listing assets, and editing assets.
In this information ...Related concepts
Related tasks
| IBM Redbooks, demos, education, and more(Index) |