Tema anterior: Consejos para clientes de servicios Web SOAPTema siguiente: Configuración de los servicios web SOAP


Clientes de Java

El archivo TableOfContents.doc en $NX_ROOT/samples/sdk/websvc enumera varios programas de ejemplo de Java.

Cada programa de ejemplo contiene notas sobre cómo se puede recopilar y ejecutar usando los archivos de script run_java_test_bat.txt (Windows) y run_java_test_sh.txt (UNIX). Estos scripts demuestran cómo utilizar org.apache.axis.wsdl.WSDL2Java para generar los archivos de código auxiliar de cliente de servicios Web de CA SDM.

Se exige que el parámetro de -w para generar correctamente los archivos de código auxiliar al utilizar Axis 1.4. Al ejecutar WSDL2Java como se muestra generará los archivos de código auxiliar en el subdirectorio com/ca/www/UnicenterServicePlus/ServiceDesk. Se generarán los siguientes archivos:

Importe estas clases con la siguiente declaración:

import com.ca.www.UnicenterServicePlus.ServiceDesk.*;

Muchos métodos de Servicio Web tienen parámetros del tipo ArrayOfString, una clase propietaria. Por ejemplo, los parámetros de atributo, propertyValues y attrVals del método createRequest() son todos parámetros de ArrayOfString.

Para establecer los valores de una variable de ArrayOfString, represente la variable y utilice setString() de la siguiente manera:

ArrayOfString attrVals = new ArrayOfString();
attrVals.setString(new String[]{"customer", customerHandle, "description", "description text"});

Para fijarlo como vacío

attrVals.setString(new String[0]);

Utilice una variable de tipo ListResult, otra clase propietaria, como el valor de retorno de los métodos de Lista: doQuery(), getRelatedList(), getNotificationsForContact(), getPendingChangeTaskListForContact() y getPendingIssueTaskListForContact(). Un valor ListResult contiene elementos de listHandle y listLength, que se pueden recuperar utilizando getListHandle() y getListLength() como se muestra en este ejemplo:

ListResult doQueryResult = new ListResult();
doQueryResult = USPSD.doQuery(sid, "iss", "active = 1");
int listHandle = doQueryResult.getListHandle();
int listLength = doQueryResult.getListLength();

El método getListValues() utiliza el elemento listHandle, recuperando los valores de un subconjunto de la lista.

El parámetro Handles del método freeListHandles() es un ArrayOfInt, otra clase propietaria. Llame a freeListHandles() utilizando el listHandle tomado de un ListResult:

ArrayOfInt handleList = new ArrayOfInt();
handleList.setInteger(new java.lang.Integer []{ new java.lang.Integer(listHandle) });
USPSD.freeListHandles(sid, handleList);

Algunos métodos tienen pase por parámetros de referencia del tipo javax.xml.rpc.holders.StringHolder. Por ejemplo, createRequest() tiene dos parámetros de este tipo, NewRequestHandle y NewRequestNumber.

StringHolder NewRequestNumber = new StringHolder();
StringHolder NewRequestHandle = new StringHolder();
String result;
result = USPSD.createRequest(sid, creatorHandle, attrVals, propertyValues, template, attributes, NewRequestHandle, NewRequestNumber);

De este modo, el identificador de la solicitud y el número de referencia (ref_num) se pueden obtener de NewRequestHandle.value y NewRequestNumber.value respectivamente.