Argomento precedente: Suggerimenti per i client dei servizi Web SOAPArgomento successivo: Configurazione servizi Web SOAP


Client Java

TableOfContents.doc in $NX_ROOT/samples/sdk/websvc elenca vari programmi Java di esempio.

Ciascun programma di esempio contiene note su come può essere compilato ed eseguito utilizzando i file di script run_java_test_bat.txt (Windows) e run_java_test_sh.txt (UNIX). Questi script dimostrano come utilizzare org.apache.axis.wsdl.WSDL2Java per generare i file stub lato cliente dei servizi Web di CA SDM.

Il parametro –w è richiesto per generare correttamente i file stub quando si usa Axis 1.4. L'esecuzione di WSDL2Java come mostrato genera i file stub nella sottodirectory com/ca/www/UnicenterServicePlus/ServiceDesk. Vengono creati i seguenti file:

Importare queste classi con la seguente istruzione:

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

Molti metodi di servizi Web hanno parametri del tipo ArrayOfString, una classe proprietaria. Per esempio, per attrVals del metodo createRequest(), propertyValues e parametri di attributi sono tutti parametri ArrayOfString.

Per impostare i valori in una variabile ArrayOfString, instanziare la variabile e utilizzare setString() come segue:

ArrayOfString attrVals = new ArrayOfString();
attrVals.setString(new String[]{"cliente", customerHandle, "descrizione", "testo descrizione"});

Per impostarlo come vuoto

attrVals.setString(new String[0]);

Utilizzare una variabile del tipo ListResult, un'altra classe proprietaria, come valore restituito dai metodi List: doQuery(), getRelatedList(), getNotificationsForContact(), getPendingChangeTaskListForContact() e getPendingIssueTaskListForContact(). Una ListResult contiene gli elementi listHandle e listLength, che possono essere recuperati utilizzando getListHandle() e getListLength() come mostrato in questo esempio:

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

Il metodo getListValues() utilizza listHandle, recuperando i valori da un sottoinsieme dell'elenco.

Il parametro Handles del metodo freeListHandles() è un ArrayOfInt, un'altra classe proprietaria. Richiamare freeListHandles() utilizzando listHandle preso da ListResult:

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

Alcuni metodi hanno parametri pass by reference del tipo javax.xml.rpc.holders.StringHolder. Per esempio, createRequest() ha due parametri di questo tipo, NewRequestHandle e NewRequestNumber.

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

Request’s handle e reference number (ref_num) possono essere ottenuti da NewRequestHandle.value e NewRequestNumber.value rispettivamente.