Rubrique précédente: Conseils pour les clients des services Web SOAPRubrique suivante: Configuration des services Web SOAP


Clients Java

TableOfContents.doc dans $NX_ROOT/samples/sdk/websvc répertorie plusieurs exemples de programmes Java.

Chaque exemple de programme contient des remarques expliquant comment le compiler et l'exécuter à l'aide des fichiers de script run_java_test_bat.txt (Windows) et run_java_test_sh.txt (UNIX). Ces scripts montrent comment utiliser org.apache.axis.wsdl.WSDL2Java pour générer les fichiers stub côté client des services Web de CA SDM.

Le paramètre –w est obligatoire pour générer correctement les fichiers stub lors de l'utilisation d'Axis 1.4. L'exécution de WSDL2Java, ainsi qu'elle est expliquée, génèrera les fichiers stub dans le sous-répertoire com/ca/www/UnicenterServicePlus/ServiceDesk. Les fichiers suivants sont créés :

Importez ces classes avec l'instruction suivante :

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

De nombreuses méthodes de services Web utilisent des paramètres de type ArrayOfString, une classe propriétaire. Par exemple, les paramètres attrVals, propertyValues et paramètres d'attributs de la méthode createRequest() sont tous des paramètres ArrayOfString.

Pour définir les valeurs dans une variable ArrayOfString, instanciez la variable, puis utilisez setString() comme suit :

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

Pour le définir sur une valeur vide

attrVals.setString(new String[0]);

Utilisez une variable de type ListResult, une autre classe propriétaire, en tant que valeur renvoyée par les méthodes de liste : doQuery(), getRelatedList(), getNotificationsForContact(), getPendingChangeTaskListForContact() et getPendingIssueTaskListForContact(). Un ListResult contient des éléments listHandle et listLength, qui peuvent être récupérés à l'aide de getListHandle() et getListLength(), comme indiqué dans cet exemple :

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

La méthode getListValues() utilise listHandle et récupère les valeurs provenant d'un sous-ensemble de la liste.

Le paramètre Handles de la méthode de freeListHandles() est un ArrayOfInt, une autre classe propriétaire. Appelez freeListHandles() à l'aide du listHandle obtenu depuis ListResult :

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

Certaines méthodes utilisent des paramètres passés par référence de type javax.xml.rpc.holders.StringHolder. Par exemple, createRequest() a deux paramètres de ce type, à savoir NewRequestHandle et NewRequestNumber.

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

Vous pouvez vous procurer le descripteur et le numéro de référence (ref_num) de la requête auprès, respectivement, de NewRequestHandle.value et de NewRequestNumber.