Supresión de un archivo a través de programación

Puede suprimir un archivo de una aplicación existente a través de la consola administrativa, la herramienta wsadmin o mediante programación. Utilice este ejemplo para suprimir un archivo a través de programación.

Antes de empezar

En esta tarea se da por supuesto que se tienen conocimientos básicos de la programación de MBean. Si desea información sobre la programación de MBean, consulte la documentación de la interfaz de programación de aplicaciones (API) Java™ de MBean. En este Information Center, pulse Reference (Referencia) > Mbean interfaces (Interfaces de Mbean).

Para poder suprimir un archivo de una aplicación en WebSphere Application Server, debe instalar la aplicación.

Acerca de esta tarea

Lleve a cabo las tareas siguientes para suprimir un archivo a través de programación.

Procedimiento

  1. Conéctese a WebSphere Application Server.
  2. Cree un proxy de gestión de aplicaciones.
  3. Cree el filtro de notificación para recibir sucesos.
  4. Añada la escucha.
  5. Suprima el archivo de la aplicación.
  6. Espere un poco para que el programa no finalice.
  7. Preste atención a las notificaciones de JMX (Java Management Extensions) para entender la realización de la operación.
  8. Cuando se haya efectuado la supresión del archivo, elimine la escucha y salga de la aplicación.

Resultados

Después de ejecutar satisfactoriamente el código, el archivo se suprime de la aplicación.

Ejemplo

En el ejemplo siguiente se muestra cómo suprimir un archivo basándose en los pasos anteriores. Algunas sentencias están partidas en varias líneas para fines de impresión.

//Entradas: 
//fileURI especifica un URI que ofrece la ubicación de destino del archivo. El URI
//proporciona la ubicación del nuevo módulo después de la instalación. El URI es
//relativo al URL de la aplicación.
//appName especifica el nombre de la aplicación.

String fileURI = "Increment.jar/com/acme/Foo.class";
String appName = "MyApp";

//Obtener el cliente administrativo para conectar con
//WebSphere Application Server.
AdminClient client = ...;

//Crear el proxy de gestión de aplicaciones.
AppManagement proxy = AppManagementProxy. getJMXProxyForClient (client);

//Crear el filtro de notificación.
  NotificationFilterSupport myFilter = new NotificationFilterSupport();
  myFilter.enableType (NotificationConstants.TYPE_APPMANAGEMENT);
  //Añadir la escucha.
  NotificationListener listener = new AListener(_soapClient, myFilter, 
"Install: " + appName, AppNotification.UPDATE);

//Actualizar la aplicación existente, MyAPP, suprimiendo el archivo.
Hashtable options = new Hashtable();
options.put (AppConstants.APPDEPL_LOCALE, Locale.getDefault());
options.put (AppConstants.APPUPDATE_CONTENTTYPE, AppConstants.APPUPDATE_CONTENT_FILE);

proxy.updateApplication (	appName, 
				fileURI,
				null,
				AppConstants.APPUPDATE_DELETE,
				options,
									null);

// Espere un poco. La interfaz de programación de aplicaciones (API) es 
//  asíncrona y por lo tanto vuelve de inmediato. 
// Si el programa no espera en este punto, finaliza.
  Thread.sleep(300000); // Espere para que el programa no finalice.
        }
        catch (Exception e) {
            e.printStackTrace();
        }

    }

}
// Especificar la escucha de notificaciones de JMX (Java Management Extensions) para los sucesos de JMX.
class AListener implements NotificationListener
{
    AdminClient _soapClient;
    NotificationFilterSupport  myFilter;
    Object handback;
    ObjectName on;
    String eventTypeToCheck;

    public AListener(AdminClient cl, NotificationFilterSupport fl, 
Object h, String eType) throws Exception
    {
        _soapClient = cl;
        myFilter = fl;
        handback = h;
        eventTypeToCheck = eType;

        Iterator iter = _soapClient.queryNames (new ObjectName(
"WebSphere:type=AppManagement,*"), null).iterator();
        on = (ObjectName)iter.next();
        System.out.println ("ObjectName: " + on);
        _soapClient.addNotificationListener (on, this, myFilter, handback);
    }

    public void handleNotification (Notification notf, Object handback)
    {
            AppNotification ev = (AppNotification) notf.getUserData();
            System.out.println ("!! JMX event Recd: (handback obj= " + handback+ "): " + ev);


            //Cuando la instalación finalice, elimine la escucha y salga de la aplicación

            if (ev.taskName.equals (eventTypeToCheck) &&
                (ev.taskStatus.equals (AppNotification.STATUS_COMPLETED) ||
                 ev.taskStatus.equals (AppNotification.STATUS_FAILED)))
            {
                    try
                    {
                            _soapClient.removeNotificationListener (on, this);
                    }
            catch (Throwable th)
                    {
                        System.out.println ("Error removing listener: " + th);
                    }
                    System.exit (0);
        }
    }
}

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjmx_delete_file
File name: tjmx_delete_file.html