The following macros are not currently supported in the header:
  • style

Apéndice B: Ejemplos de cliente de servicios Web

La API de servicios Web del Centro de servicio al usuario se basa en el proyecto Apache Axis2 que es una implementación basada en Java tanto del lado del cliente como del lado del servidor de la ecuación de servicios Web. Axis es básicamente un motor de SOAP, una estructura para crear procesadores de SOAP como clientes, servidores, etc.

En las siguientes muestras aparece la estructura para desarrollar código de cliente para consumir servicios Web del Centro de servicio al usuario.

Esta sección contiene los siguientes temas:                                                                                                        

 

Configuración del entorno

Descargue la versión binaria de Apache Axis2 y extraiga la versión binaria (axis2-1.5.1-bin.zip). Después de haber extraído el archivo a E:Axis2Client (se supone que es el directorio de cliente), se obtendrá el directorio E:Axis2Clientaxis2-1.5.1-binaxis2-1.5.1. Este directorio contiene la versión binaria del motor de Apache Axis2. Ahora, establezca las variables de entorno invocando el siguiente código desde una línea de comandos:

@set AXIS2_HOME=D:\ java-tools\ axis2-1.5.1

Generación del código de cliente de Axis2 con la herramienta "wsdl2java"

Un archivo de lenguaje de descripción de servicios Web (WSDL) describe un servicio Web. La API de Java para la especificación de RPC 1.1 (llamada de procedimiento remoto) basada en XML (JAX-RPC) define una asignación de API de Java que interactúa con el servicio Web.

Los servicios Web para la especificación Java 2 Platform, Enterprise Edition (J2EE) 1.1 definen descriptores de implementación que implementan un servicio Web en un entorno de J2EE. El comando WSDL2Java se ejecuta en el archivo WSDL para crear API de Java y plantillas de descriptores de implementación según estas especificaciones.

La sintaxis de línea de comandos es:

WSDL2Java [arguments] WSDL-URI

A partir de una línea de comandos, genere el código de cliente para servicio Web de ServiceRequest emitiendo el siguiente comando:

%AXIS2_HOME%\ bin\ WSDL2Java -url  http://nsd-preview.nimsoftondemand.com/webservices/ServiceRequest?wsdl -o com/infradeskonline/genclient

Donde:

  • "-url" es la ruta donde ha guardado una copia del wsdl en formato ".wsdl" o ".xml", o la URL en la que reside el WSDL.
  • "-o" es la ruta donde se desea que se escriban los archivos. Si no se especifica, los archivos se escribirán en la ubicación actual de bin.
  • El comando anterior generará "ServiceRequestStub.java" y "ServiceRequestCallbackHandler.java" en el directorio "com/infradeskonline/genclient".

Secuencia típica de llamada a la API

Para cada llamada, la aplicación de cliente normalmente realiza las siguientes tareas:

  • Prepara la solicitud definiendo parámetros de solicitud, si procede.
  • Invoca la llamada, que pasa la solicitud con sus parámetros al servicio Web del Centro de servicio al usuario para su procesamiento.
  • Recibe la respuesta de la API.
  • Gestiona la respuesta. Para ello, procesa los datos devueltos (para una invocación correcta) o gestiona el error (para una invocación errónea).

Ejemplo de cliente de llamada Get
 

A continuación, se muestra un ejemplo de un programa de cliente de Axis que convoca la operación getServiceRequest para consultar un extracto de los detalles primarios (información general) que pertenecen a la solicitud de servicio identificada por el identificador de ticket especificado, en el formato de salida XML.

public class ServiceRequestClient
{    


public void main (

String [] args)
   { 


try
      { 
         // Create the request
         ServiceRequestStub                        srqStub         = 

new ServiceRequestStub();
         ServiceRequestStub.Credentials            credentials     = 

new ServiceRequestStub.Credentials();
         ServiceRequestStub.ExtendedSettings       extParams       = 

new ServiceRequestStub.ExtendedSettings();

         // Initialize Credentials (User Name & User Password / Authorization Token & Slice Token)
         credentials.setUserName (

"wsuser");
         credentials.setUserPassword (

"wsuser");

         // Initialize Extended Settings such as Response Format (XML, JSON)
         extParams.setResponseFormat (

"XML");

         // Invoke the GET service
         ServiceRequestStub.DefaultServiceResponse serviceResponse = srqStub.getServiceRequest (credentials, extParams, ticketIdentifier);

         // Inspect successful execution of service and retrieve the response text


if (serviceResponse.getResponseStatus ().equals (

"OK"))
         { 


System.out.println(

"XML Response : " + serviceResponse.getResponseText ());  
         } 
         // Retrieve the status code, status message and error messages, in 

case of failures


else
         { 


System.out.println(

"Status Code : " + serviceResponse.getStatusCode ());


System.out.println(

"Status Message : " + serviceResponse.getStatusMessage ());


System.out.println(

"Errors : " + Arrays.asList (serviceResponse.getErrors ()).toString ());
         } 
      } 


catch (Exception e) 
      { 


System.out.println (

"Exception: " + e.getMessage());
                } 
   } 
} 

Ejemplo de cliente de llamada List

A continuación, se muestra un ejemplo de un programa de cliente de Axis que convoca la operación listServiceRequest para solicitar la devolución de la lista de todas las solicitudes de servicio abiertas para el usuario que ha iniciado sesión y sus grupos coincidentes con los criterios de búsqueda especificados, en el formato de salida JSON.

public class ServiceRequestClient
{    


public void main (

String [] args)
   { 


try
      { 
         // Create the request
         ServiceRequestStub                        srqStub         = 

new ServiceRequestStub();
         ServiceRequestStub.Credentials            credentials     = 

new ServiceRequestStub.Credentials();
         ServiceRequestStub.ExtendedSettings       extParams       = 

new ServiceRequestStub.ExtendedSettings();

         // Initialize Credentials (User Name & User Password / Authorization Token & Slice Token)
         credentials.setUserName (

"wsuser");
         credentials.setUserPassword (

"wsuser");

         // Initialize Extended Settings such as Response Format (XML, JSON)
         extParams.setResponseFormat (

"JSON");

         // Invoke the LIST service
         ServiceRequestStub.DefaultServiceResponse serviceResponse = srqStub.listServiceRequest (credentials, extParams, ticketIdentifier);

         // Inspect successful execution of service and retrieve the response text


if (serviceResponse.getResponseStatus ().equals (

"OK"))
         { 


System.out.println(

"JSON Response : " + serviceResponse.getResponseText ());  
         } 
         // Retrieve the status code, status message and error messages, in 

case of failures


else
         { 


System.out.println(

"Status Code : " + serviceResponse.getStatusCode ());


System.out.println(

"Status Message : " + serviceResponse.getStatusMessage ());


System.out.println(

"Errors : " + Arrays.asList (serviceResponse.getErrors ()).toString ());
         } 
      } 


catch (Exception e) 
      { 


System.out.println (

"Exception: " + e.getMessage());
      } 
   } 
} 

Ejemplo de cliente de llamada Insert

A continuación, se muestra un ejemplo de un programa de cliente de Axis que convoca la operación listServiceRequest para crear/registrar un nuevo ticket de solicitud de servicio con los detalles proporcionados.

public class ServiceRequestClient
{    


public void main (

String [] args)
   { 


try
      { 
         // Create the request
         ServiceRequestStub                        srqStub     = 

new ServiceRequestStub();
         ServiceRequestStub.Credentials            credentials = 

new ServiceRequestStub.Credentials();
         ServiceRequestStub.ExtendedSettings       extParams   = 

new ServiceRequestStub.ExtendedSettings();
         ServiceRequestStub.ServiceRequest         srqBean     = 

new ServiceRequestStub.ServiceRequest();

         // Initialize Credentials (User Name & User Password / Authorization Token & Slice Token)
         credentials.setUserName (

"wsuser");
         credentials.setUserPassword (

"wsuser");

         // Initialize Extended Settings such as Response Format (XML, JSON)
         extParams.setResponseFormat (

"JSON");

         // Initialize Service Request Bean with neccessary details
         srqBean.setRequester_name (

"Admin, InteQ");
         srqBean.setTicket_description (

"Ticket creation via webservice# " + 

new Date());

         // Invoke the INSERT service
         ServiceRequestStub.DefaultServiceResponse serviceResponse = srqStub.logServiceRequest (credentials, extParams, srqBean);

         // Inspect successful execution of service and retrieve the response text


if (serviceResponse.getResponseStatus ().equals (

"OK"))
         { 


System.out.println(

"JSON Response : " + serviceResponse.getResponseText ());  
         } 
         // Retrieve the status code, status message and error messages, in 

case of failures


else
         { 


System.out.println(

"Status Code : " + serviceResponse.getStatusCode ());


System.out.println(

"Status Message : " + serviceResponse.getStatusMessage ());


System.out.println(

"Errors : " + Arrays.asList (serviceResponse.getErrors ()).toString ());
         } 
      } 


catch (Exception e) 
      { 


System.out.println (

"Exception: " + e.getMessage());
      } 
   } 
} 

Ejemplo de cliente de llamada Update

 

A continuación, se muestra un ejemplo del programa cliente Axis que llama a la operación listServiceRequest para actualizar un ticket de solicitud de servicio existente identificado por el ID de fila "123" con los detalles proporcionados.

public class ServiceRequestClient
{    


public void main (

String [] args)
   { 


try
      { 
         // Create the request
         ServiceRequestStub                        srqStub     = 

new ServiceRequestStub();
         ServiceRequestStub.Credentials            credentials = 

new ServiceRequestStub.Credentials();
         ServiceRequestStub.ExtendedSettings       extParams   = 

new ServiceRequestStub.ExtendedSettings();
         ServiceRequestStub.ServiceRequest         srqBean     = 

new ServiceRequestStub.ServiceRequest();

         // Initialize Credentials (User Name & User Password / Authorization Token & Slice Token)
         credentials.setUserName (

"wsuser");
         credentials.setUserPassword (

"wsuser");

         // Initialize Extended Settings such as Response Format (XML, JSON)
         extParams.setResponseFormat (

"JSON");

         // Initialize Service Request Bean with neccessary details
         srqBean.setRow_id (123);
         srqBean.setTicket_description (

"Updated - Ticket creation via webservice# " + 

new Date());

         // Invoke the UPDATE service
         ServiceRequestStub.DefaultServiceResponse serviceResponse = srqStub.logServiceRequest (credentials, extParams, srqBean);

         // Inspect successful execution of service and retrieve the response text


if (serviceResponse.getResponseStatus ().equals (

"OK"))
         { 


System.out.println(

"JSON Response : " + serviceResponse.getResponseText ());  
         } 
         // Retrieve the status code, status message and error messages, in 

case of failures


else
         { 


System.out.println(

"Status Code : " + serviceResponse.getStatusCode ());


System.out.println(

"Status Message : " + serviceResponse.getStatusMessage ());


System.out.println(

"Errors : " + Arrays.asList (serviceResponse.getErrors ()).toString ());
         } 
      } 


catch (Exception e) 
      { 


System.out.println (

"Exception: " + e.getMessage());
      } 
   } 
} 

Ejemplo de cliente de llamada de supresión

A continuación, se muestra un ejemplo de un programa de cliente de Axis que convoca la operación deleteAttachment para suprimir la entrada de documento de archivo adjunto de la base de datos identificada por el ID de fila número 12.                  

public class AttachmentClient
{    


public void main (

String [] args)
   { 


try
      { 
         // Create the request
         AttachmentStub                  attachmentStub = 

new AttachmentStub();
         AttachmentStub.Credentials      credentials    = 

new AttachmentStub.Credentials();
         AttachmentStub.ExtendedSettings extParams      = 

new AttachmentStub.ExtendedSettings();

         // Initialize Credentials (User Name & User Password / Authorization Token & Slice Token)
         credentials.setUserName (

"wsuser");
         credentials.setUserPassword (

"wsuser");

         // Initialize Extended Settings such as Response Format (XML, JSON)
         extParams.setResponseFormat (

"JSON");

         // Invoke the DELETE service
         AttachmentStub.DefaultServiceResponse serviceResponse = attachmentStub.deleteAttachment (credentials, extParams, 

"12");

         // Inspect successful execution of service and retrieve the response text


if (serviceResponse.getResponseStatus ().equals (

"OK"))
         { 


System.out.println(

"JSON Response : " + serviceResponse.getResponseText ());  
         } 
         // Retrieve the status code, status message and error messages, in 

case of failures


else
         { 


System.out.println(

"Status Code : " + serviceResponse.getStatusCode ());


System.out.println(

"Status Message : " + serviceResponse.getStatusMessage ());


System.out.println(

"Errors : " + Arrays.asList (serviceResponse.getErrors ()).toString ());
         } 
      } 


catch (Exception e) 
      { 


System.out.println (

"Exception: " + e.getMessage());
      } 
   } 
} 

© 2017 ServiceAide 1-650-206-8988 http://www.serviceaide.com info@serviceaide.com