SDK de Java

Last published : Oct 02, 2026
Las API NITRO de SDX se clasifican, según el alcance y el propósito de las API, en API de sistema y API de configuración. También puede solucionar problemas de las operaciones NITRO.

API del sistema

El primer paso para usar NITRO es establecer una sesión con el dispositivo SDX y, a continuación, autenticar la sesión mediante las credenciales del administrador.
Cree un objeto de la clase nitro_service especificando la dirección IP del dispositivo y el protocolo para conectarse al dispositivo (HTTP o HTTPS). A continuación, use este objeto e inicie sesión en el dispositivo especificando el nombre de usuario y la contraseña del administrador.
Nota: Debe tener una cuenta de usuario en ese dispositivo. Las operaciones de configuración que puede realizar están limitadas por el rol administrativo asignado a su cuenta.
El siguiente código de ejemplo se conecta a un dispositivo SDX con la dirección IP 10.102.31.16 mediante el protocolo HTTPS:
//Specify the IP address of the appliance and service type
nitro_service nitroservice = new nitro_service ("10.102.31.16", "https");

//Specify the login credentials
nitroservice.login("nsroot", "verysecret");
Nota: Utilice el objeto nitro_service en todas las operaciones NITRO posteriores en el dispositivo.
Para desconectar del dispositivo, invoque el método logout() de la siguiente manera:
nitroservice.logout();

API de configuración

El protocolo NITRO se puede utilizar para configurar los recursos del dispositivo SDX.
Las API para configurar un recurso se agrupan en paquetes o espacios de nombres que tienen el formato com.citrix.sdx.nitro.resource.config.<resource_type>. Cada uno de estos paquetes o espacios de nombres contiene una clase denominada <resource_type> que proporciona las API para configurar el recurso.
Por ejemplo, el recurso NetScaler tiene el paquete o espacio de nombres com.citrix.sdx.nitro.resource.config.ns.
Una clase de recurso proporciona API para realizar muchas otras operaciones. Estas operaciones pueden ser la creación de un recurso, la recuperación de detalles y estadísticas del recurso, la actualización de un recurso, la eliminación de recursos y la realización de operaciones masivas en los recursos.

Creación de un recurso

Para crear un recurso (por ejemplo, una instancia de NetScaler) en el dispositivo SDX, haga lo siguiente:
  1. Establezca el valor de las propiedades requeridas del recurso utilizando el nombre de propiedad correspondiente. El resultado es un objeto de recurso que contiene los detalles necesarios para el recurso. Nota: Estos valores se establecen localmente en el cliente. Los valores no se reflejan en el dispositivo hasta que se carga el objeto.
  2. Cargue el objeto de recurso en el dispositivo, utilizando el método estático add().
El siguiente código de ejemplo crea una instancia de NetScaler llamada "ns_instance" en el dispositivo SDX:
ns newns = new ns();

//Set the properties of the NetScaler locally
newns.set_name("ns_instance");
newns.set_ip_address("10.70.136.5");
newns.set_netmask("255.255.255.0");
newns.set_gateway("10.70.136.1");
newns.set_image_name("nsvpx-9.3.45_nc.xva");
newns.set_profile_name("ns_nsroot_profile");
newns.set_vm_memory_total(new Double(2048));
newns.set_throughput(new Double(1000));
newns.set_pps(new Double(1000000));
newns.set_license("Standard");
newns.set_username("admin");
newns.set_password("admin");

int number_of_interfaces = 2;
network_interface[] interface_array = new network_interface[number_of_interfaces];

//Adding 10/1
interface_array[0] = new network_interface();
interface_array[0].set_port_name("10/1");

//Adding 10/2
interface_array[1] = new network_interface();
interface_array[1].set_port_name("10/2");

newns.set_network_interfaces(interface_array);

//Upload the NetScaler instance
ns result = ns.add(nitroservice, newns);

Recuperación de detalles del recurso

Para recuperar las propiedades de un recurso en el dispositivo SDX, haga lo siguiente:
  1. Recupere las configuraciones del dispositivo utilizando el método get(). El resultado es un objeto de recurso.
  2. Extraiga la propiedad requerida del objeto utilizando el nombre de propiedad correspondiente.
El siguiente código de ejemplo recupera los detalles de todos los recursos de NetScaler®:
//Retrieve the resource object from the SDX appliance
ns[] returned_ns = ns.get(nitroservice);

//Extract the properties of the resource from the object
System.out.println(returned_ns[i].get_ip_address());
System.out.println(returned_ns[i].get_netmask());

Recuperación de estadísticas de recursos

Un dispositivo SDX recopila estadísticas sobre el uso de sus funciones. Puede recuperar estas estadísticas utilizando NITRO.
El siguiente código de ejemplo recupera las estadísticas de una instancia de NetScaler con ID 123456a:
ns obj = new ns();
obj.set_id("123456a");
ns stats = ns.get(nitroservice, obj);
System.out.println("CPU Usage:" + stats.get_ns_cpu_usage());
System.out.println("Memory Usage:" + stats.get_ns_memory_usage());
System.out.println("Request rate/sec:" +stats.get_http_req());

Actualización de un recurso

Para actualizar las propiedades de un recurso existente en el dispositivo, haga lo siguiente:
  1. Establezca la propiedad id en el ID del recurso que se va a actualizar.
  2. Establezca el valor de las propiedades requeridas del recurso utilizando el nombre de propiedad correspondiente. El resultado es un objeto de recurso. Nota: Estos valores se establecen localmente en el cliente. Los valores no se reflejan en el dispositivo hasta que se carga el objeto.
  3. Cargue el objeto de recurso en el dispositivo, utilizando el método update().
El siguiente código de ejemplo actualiza el nombre de la instancia de NetScaler con ID 123456a a 'ns_instance_new':
ns update_obj = new ns();

//Set the ID of the NetScaler to be updated
update_obj.set_id("123456a");

//Get existing NetScaler details
update_obj = ns.get(nitroservice, update_obj);

//Update the name of the NetScaler to "ns_instance_new" locally
update_obj.set_name("ns_instance_new");

//Upload the updated NetScaler details
ns result = ns.update(nitroservice, update_obj);

Eliminar un recurso

Para eliminar un recurso existente, invoque el método estático delete() en la clase de recurso, pasando el ID del recurso a eliminar como argumento.
El siguiente código de ejemplo elimina una instancia de NetScaler con ID 1:
ns obj = new ns();
obj.set_id("123456a");
ns.delete(nitroservice, obj);

Operaciones masivas

Puede consultar o cambiar varios recursos simultáneamente y así minimizar el tráfico de red. Por ejemplo, puede añadir varios dispositivos NetScaler SDX en la misma operación.
Cada clase de recurso tiene métodos que toman una matriz de recursos para añadir, actualizar y eliminar recursos. Para realizar una operación masiva, especifique los detalles de cada operación localmente y luego envíe los detalles al servidor de una sola vez.
Para tener en cuenta el fallo de algunas operaciones dentro de la operación masiva, NITRO le permite configurar uno de los siguientes comportamientos:
  • Salir. Cuando se encuentra el primer error, la ejecución se detiene. Los comandos que se ejecutaron antes del error se confirman.
  • Continuar. Todos los comandos de la lista se ejecutan incluso si algunos comandos fallan.
Nota: Configure el comportamiento requerido al establecer una conexión con el dispositivo, estableciendo el parámetro onerror en el método nitro_service().
El siguiente código de ejemplo añade dos dispositivos ADC en una operación:
ns[] newns = new ns[2];

//Specify details of first NetScaler
newns[0] = new ns();
newns[0].set_name("ns_instance1");
newns[0].set_ip_address("10.70.136.5");
newns[0].set_netmask("255.255.255.0");
newns[0].set_gateway("10.70.136.1");
...
...
...

//Specify details of second NetScaler
newns[1] = new ns();
newns[1].set_name("ns_instance2");
newns[1].set_ip_address("10.70.136.8");
newns[1].set_netmask("255.255.255.0");
newns[1].set_gateway("10.70.136.1");
...
...

//upload the details of the NetScalers to the NITRO server
ns[] result = ns.add(nitroservice, newns);

Manejo de excepciones

El campo del código de error indica el estado de la operación.
  • Un código de error de 0 indica que la operación se realizó correctamente.
  • Un código de error distinto de cero indica un error en el procesamiento de la solicitud NITRO.
El campo del mensaje de error proporciona una breve explicación y la naturaleza del fallo.
La clase com.citrix.sdx.nitro.exception.nitro_exception captura todas las excepciones en la ejecución de las API de NITRO. Para obtener información sobre la excepción, puede utilizar el método getErrorCode().
Para obtener una descripción más detallada de los códigos de error, consulte la referencia de la API disponible en la carpeta <NITRO_SDK_HOME>/doc.