Tópico anterior: Dicas para clientes de serviços web SOAP

Próximo tópico: Configuração de Serviços web do SOAP

Clientes Java

TableOfContents.doc em $NX_ROOT/samples/sdk/websvc lista vários programas de amostra Java.

Cada programa de amostra contém observações sobre como pode ser compilado e executado com o uso de arquivos de script run_java_test_bat.txt (Windows) e run_java_test_sh.txt (UNIX). Esses scripts mostram como usar org.apache.axis.wsdl.WSDL2Java para gerar arquivos stub do lado do cliente dos serviços web do CA SDM.

O parâmetro –w é solicitado para gerar corretamente os arquivos stub ao usar o Axis 1.4. A execução de WSDL2Java conforme mostrado gerará os arquivos stub no subdiretório com/ca/www/UnicenterServicePlus/ServiceDesk. Os arquivos a seguir são gerados:

Importe estas classes com a seguinte instrução:

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

Muitos métodos de serviço web têm parâmetros do tipo ArrayOfString, uma classe proprietária. Por exemplo, createRequest() method’s attrVals, propertyValues e parâmetros de atributos são todos parâmetros ArrayOfString.

Para definir os valores em uma variável ArrayOfString, instancie a variável e use setString() conforme segue:

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

Para defini-la como vazio

attrVals.setString(new String[0]);

Use uma variável do tipo ListResult, outra classe proprietária, como um valor de retorno dos métodos List: doQuery(), getRelatedList(), getNotificationsForContact(), getPendingChangeTaskListForContact() e getPendingIssueTaskListForContact(). Uma ListResult contém elementos listHandle e listLength, que podem ser recuperados com o uso de getListHandle() e getListLength(), como mostrado neste exemplo:

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

O método getListValues() usa listHandle, recuperando os valores de um subconjunto da lista.

O parâmetro Handles do método freeListHandles() é um ArrayOfInt, outra classe proprietária. Chame freeListHandles() usando listHandle obtido de um ListResult:

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

Alguns métodos são passados por parâmetros de referência do tipo javax.xml.rpc.holders.StringHolder. Por exemplo, createRequest() tem dois parâmetros desse tipo, NewRequestHandle e NewRequestNumber.

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

O identificador e o número de referência de Request (ref_num) podem ser obtidos respectivamente de NewRequestHandle.value e NewRequestNumber.value.