Bonjour,
je suis bloqué par un webservice pour configurer convenablement l'api axiscStubSecure car le fournisseur m'indique seulement que la communication se fait sous SSL avec un certificat que j'ai importé dans DCM et un mot de passe contenu dans un autre fichier dont l'extension est pfx. Que faire avec ce fichier? et quel paramètre dois je passer à l'API?
Merci si quelqu'un peut m'aider.
API axiscStubSetSecure
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
axiscStubSetSecure
Code : Tout sélectionner
Après avoir ajouté
/copy /QIBM/ProdData/OS/WebServices/V1/client/include/Axis.rpgleinc
* qui contient
D* axiscStubSetSecure...
D* PR EXTPROC('axiscStubSetSecure')
D* pStub * Value
D* pKeyRingFile * Value OPTIONS(*STRING)
D* pKeyRingSorP * Value OPTIONS(*STRING : *NOPASS)
D* pKeyRingLabel * Value OPTIONS(*STRING : *NOPASS)
D* pV2Cipher * Value OPTIONS(*STRING : *NOPASS)
D* pV3Cipher * Value OPTIONS(*STRING : *NOPASS)
D* pTLSv1Cipher * Value OPTIONS(*STRING : *NOPASS)
D* pTKSv11Cipher * Value OPTIONS(*STRING : *NOPASS)
D* pTKSv12Cipher * Value OPTIONS(*STRING : *NOPASS)
* ce dernier paramètre permet une tolérance (date dépassée par ex.)
D* pTolerate * Value OPTIONS(*STRING : *NOPASS)
/free
NONE = 'NONE' + x'00;
TRUE = 'true' + x'00';
if stub_create_convertTempServices;
axiscStubSetSecure(WsStub.handle:
'/QIBM/USERDATA/ICSS/CERT/SERVER/DEFAULT.KDB':
'motdepasse': 'label':NONE:NONE:NONE:NONE:x'00':TRUE);
// activation TLSv12 + tolérance
ne mettez rien en 3eme paramètre (remplacez motdepasse par une chaine vide)
Si vous avez des temps de réponses particulièrement longs, utilisez axiscStubSetTransportConnectTimeout(handle, nb-de-secondes)
Si vous rencontrez des problèmes, lancez une trace par axiscAxisStartTrace(’/tmp/axis.log’:*NULL) en début de pgm.
( axiscAxisStopTrace permet d'arrêter la trace)
Christian Massé (Volubis.fr)
En attendant la réponse du fournisseur, je finis de coder le programme et je m'aperçois que les noms des variables que je récupère sont super longs. Ils font 200 charactères de long par exemple. L'as/400 du client pour lequel on travaille est en V6R1 et mon programme est écrit en free. Comment puis je faire un eval avec un nom de variable aussi long?
J'ai essayé ceci:
Qte=Xreponse.RetourRecupererDonneesObjet.Dernieres
Releves_REF.PeriodePCEJJ_Ref.Releve
PCEJJ_Ref.array(I).Quantite_Ref.value;
mais ça ne passe pas à la compilation. Il donne des erreurs 7030 pour chaque ligne alors que le nom du champ est :
Xreponse.RetourRecupererDonneesObjet.DernieresReleves_REF.PeriodePCEJJ_Ref.RelevePCEJJ_Ref.array(I).Quantite_Ref.value;
J'ai essayé ceci:
Qte=Xreponse.RetourRecupererDonneesObjet.Dernieres
Releves_REF.PeriodePCEJJ_Ref.Releve
PCEJJ_Ref.array(I).Quantite_Ref.value;
mais ça ne passe pas à la compilation. Il donne des erreurs 7030 pour chaque ligne alors que le nom du champ est :
Xreponse.RetourRecupererDonneesObjet.DernieresReleves_REF.PeriodePCEJJ_Ref.RelevePCEJJ_Ref.array(I).Quantite_Ref.value;
j'ai modifié le programme pour ajouter les paramètres indiqués mais j'ai une erreur de compil car trop de paramètres indiqués:
// Ouverture de la connexion du web service
if (stub_create_RecupererDonneesPCEService(xs_ds)= *On);
None = 'NONE' + x'00';
True = 'true' + x'00';
// établissement des paramètres de la connexion SSL
axiscStubSetSecure(xs_ds.handle:
RNF5407: Le nombre de paramètres transmis dans l'appel prototype est supérieur au nombre admis.
RNF5407: Le nombre de paramètres transmis dans l'appel prototype est supérieur au nombre admis.
RNF5407: Le nombre de paramètres transmis dans l'appel prototype est supérieur au nombre admis.
'/QIBM/USERDATA/ICSS/CERT/SERVER/DEFAULT.KDB':
' ':
NULLSTR:
NONE:
NONE:
NONE:
NONE:
x'00':
TRUE);
// Ouverture de la connexion du web service
if (stub_create_RecupererDonneesPCEService(xs_ds)= *On);
None = 'NONE' + x'00';
True = 'true' + x'00';
// établissement des paramètres de la connexion SSL
axiscStubSetSecure(xs_ds.handle:
RNF5407: Le nombre de paramètres transmis dans l'appel prototype est supérieur au nombre admis.
RNF5407: Le nombre de paramètres transmis dans l'appel prototype est supérieur au nombre admis.
RNF5407: Le nombre de paramètres transmis dans l'appel prototype est supérieur au nombre admis.
'/QIBM/USERDATA/ICSS/CERT/SERVER/DEFAULT.KDB':
' ':
NULLSTR:
NONE:
NONE:
NONE:
NONE:
x'00':
TRUE);
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
version 1.5 obsolete
problématique de version je pense (V6R10 je crois), il faut enlever des paramètres (en aveugle, la 610 n'étant plus maintenue) ou retrouver la doc de cette version.
Christian Massé (Volubis.fr)