Dépannage des problèmes liés à l'API de services Web

Sommaire
casp1032
Problèmes courants
Si vous rencontrez des problèmes lors de l'utilisation de l'API de services Web
DX NetOps Spectrum
, vérifiez ce qui suit :
  • L'URL a-t-elle été correctement construite ?
  • Le verbe utilisé avec le nom est-il approprié ?
  • Le code XML de la demande GET Tunneling est-il correct ?
  • Les informations d'identification saisies sont-elles correctes ?
  • L'en-tête Accept et Content-type ont-ils été définis correctement pour XML ou JSON ?
  • Les erreurs de l'API de services Web
    DX NetOps Spectrum
    s'affichent-elles dans le journal tomcat ?
Le lien Next (Suivant) ne fonctionne pas
Symptôme :
Le lien Next (Suivant) généré dans une réponse ne fonctionne pas correctement lorsque j'essaie d'extraire l'ensemble de résultats limités suivant.
Solution :
Le format des paramètres dans le lien généré peut varier en fonction de votre environnement. Par exemple, & peut être généré comme & en raison de différences entre les normes de formatage XML, HTTP et JSON. Remarquez la différence dans les préfixes pour les paramètres start et throttlesize dans les URL suivantes :
http://localhost/spectrum/restful/models?id=5b03b5ba-64ed-4603-b3e1-8e71919fccd8&start=2&throttlesize=2 http://localhost/spectrum/restful/models?id=5b03b5ba-64ed-4603-b3e1-8e71919fccd8&start=2&throttlesize=2
Pour corriger cette erreur, remplacez &amp par & dans votre URL.
Cela s'applique uniquement au format XML (et non au format JSON).
La recherche de l'API de services Web arrête brutalement SpectroSERVER
Symptôme
 :
SpectroSERVER
DX NetOps Spectrum
s'arrête brutalement peu après l'exécution d'une recherche de l'API de services Web.
La sortie de la pile sera similaire à celle-ci (la clé étant CsModelDomainSrvc::getModelIDListByXmlSearchCriteria) :
#0 0x00002b2f85bc9ca0 in CsBuffer::makestr(int, char) const () from /opt/SPECTRUM/lib/libGlobl.so.1 #0 0x00002b2f85bc9ca0 in CsBuffer::makestr(int, char) const () from /opt/SPECTRUM/lib/libGlobl.so.1 #1 0x00002b2f7e8d46cb in CsLandscape::search_keyed_models(CsFindSpec const*, CsULHashTable*, CsFindSpec::LogicalOp_e, CsULHashTable*, int) () from /opt/SPECTRUM/lib/../SS/libsskrnl.so.1 #2 0x00002b2f7e8d4ad7 in CsLandscape::terminal_find_model_handles(CsFindSpec const*, CsULHashTable*, CsFindSpec::LogicalOp_e, CsError::CsError_e*, int) () from /opt/SPECTRUM/lib/../SS/libsskrnl.so.1 #3 0x00002b2f7e8d4ee6 in CsLandscape::find_model_handles(CsFindSpec const*, CsError::CsError_e*, CsSecurityIf const*, int) () from /opt/SPECTRUM/lib/../SS/libsskrnl.so.1 #4 0x00002b2f7e8d5786 in CsLandscape::find_models(CsFindSpec const*, CsSecurityIf const*, int) () from /opt/SPECTRUM/lib/../SS/libsskrnl.so.1 #5 0x00002b2f7e8d5871 in CsLandscape::find_models(CsFindSpec const*, CsSecurityIf const*) () from /opt/SPECTRUM/lib/../SS/libsskrnl.so.1 #6 0x00002b2f7e8f8d04 in CsModelDomainSrvc::get_model_desc_list(CsSecurityIf const&, char const*, char const*, CsULHashTable*) () from /opt/SPECTRUM/lib/../SS/libsskrnl.so.1 #7 0x00002b2f7e8f9b4c in CsModelDomainSrvc::getModelIDListByXmlSearchCriteria(CsCAttribute::CsCValue const&, CsSecurityIf const&) () from /opt/SPECTRUM/lib/../SS/libsskrnl.so.1 #8 0x00002b2f7e858217 in CModelDomainItcM::processItcRequest(ITC_Request_Parms*) () from /opt/SPECTRUM/lib/../SS/libsskrnl.so.1 #9 0x00002b2f80fb30d4 in ITC_Request_Parms_Corba::processRequest_TransferExceptions() () from /opt/SPECTRUM/lib/libitc.so.1 #10 0x00002b2f80fb28e1 in ItcWorkQueue::process_work_item(ItcQdItem*) () from /opt/SPECTRUM/lib/libitc.so.1 #11 0x00002b2f80fb26a2 in ItcWorkQueue::process_work_node(CsWorkNode*) () from /opt/SPECTRUM/lib/libitc.so.1 #12 0x00002b2f8340d3aa in CsWorkScheduler::do_work() () from /opt/SPECTRUM/lib/libwkmgr.so.1 #13 0x00002b2f7ebde7a3 in moot_thread_start () from /opt/SPECTRUM/lib/libmoot.so.1 #14 0x00000031a16419e0 in ?? ()
Cause :
La cause est due à un type de recherche incompatible dans la requête de service Web.
Par exemple, l'attribut isManaged (0x1295d) prend uniquement en charge la valeur Equal (Egale).
Il ne prend pas en charge has-substring ou has-substring-ignore-case.
Solution :
Vérifiez la recherche de services Web. Si vous utilisez un type de recherche incorrect pour l'attribut sur lequel vous effectuez la recherche, vous devrez le corriger. Si vous n'êtes pas sûr d'utiliser un type de recherche incorrect, vous pouvez créer la même recherche dans OneClick Locater (Localiseur OneClick) et enregistrer la recherche. Examinez ensuite le fichier XML associé à la recherche sur le serveur Web OneClick dans le répertoire <SPECROOT>/custom/console/config.
Par exemple, cette recherche de l'attribut isManaged (0x1295d) arrête brutalement votre SpectroSERVER car l'attribut isManaged ne fonctionne pas avec une recherche de sous-chaîne :
<has-substring-ignore-case>
<attribute id="0x1295d">
<value>no</value>
</attribute>
</has-substring-ignore-case>
Remplacez par :
<equals>
<attribute id="0x1295d">
<value>no</value>
</attribute>
</equals>