Je suis en train de tester l'exposition de *SRVPGM en web services REST.
Ca fonctionne plutôt bien jusqu'à ce que je tente de complexifier les paramètres, en imbriquant des DS qualifiées.
Par exemple, voici l'interface d'une procédure qui plante le déploiement du web service :
Code : Tout sélectionner
dcl-proc minusculeListesImb export;
dcl-pi *n;
prequest likeds(request) const;
presponse likeds(response);
pHttpStatus int(10);
pHttpHeaders char(100) dim(10);
end-pi;
//--------------------------------------------------------------------------------------------------
// Request
//--------------------------------------------------------------------------------------------------
dcl-ds request template qualified;
groupesIn likeds(tGroupesIn) inz(*likeds) ;
end-ds;
dcl-ds tGroupesIn template qualified inz;
groupeIn likeds(tGroupeIn) dim(10) inz(*likeds) ;
end-ds;
dcl-ds tGroupeIn template qualified inz;
chaineIn char(50) dim(10);
end-ds;
//--------------------------------------------------------------------------------------------------
// Response
//--------------------------------------------------------------------------------------------------
dcl-ds Response template qualified;
groupesOut likeds(tGroupesOut) inz ;
end-ds;
dcl-ds tGroupesOut template qualified inz;
groupeOut_length int(5) inz;
groupeOut likeds(tGroupeOut) dim(10) inz(*likeds) ;
end-ds;
dcl-ds tGroupeOut template qualified inz;
chaineOut_length int(5) inz;
chaineOut char(50) dim(10);
end-ds;
Code : Tout sélectionner
/www/WSTB/webservices/temp/helloWorld_1544194148041/helloWorld/WEB-INF/classes/iseries/wsbeans/helloworld/MinusculeListesImb.java:268: erreur : Symbole introuvable
getpresponse().setgroupesOut( new TGroupesOut());
^
Symbole : méthode setgroupesOut(TGroupesOut)
Emplacement : classe Response
/www/WSTB/webservices/temp/helloWorld_1544194148041/helloWorld/WEB-INF/classes/iseries/wsbeans/helloworld/MinusculeListesImb.java:275: erreur : Symbole introuvable
getpresponse().getgroupesOut().setgroupeOut_length((Short)as400bin21.toObject(presponseOutputBuf,presponseOutputBufOffset));
^
Symbole : méthode getgroupesOut()
Emplacement : classe Response
/www/WSTB/webservices/temp/helloWorld_1544194148041/helloWorld/WEB-INF/classes/iseries/wsbeans/helloworld/MinusculeListesImb.java:282: erreur : Symbole introuvable
getpresponse().getgroupesOut().util_setgroupeOut(new TGroupeOut[10], false);
^
Symbole : méthode getgroupesOut()
Emplacement : classe Response
/www/WSTB/webservices/temp/helloWorld_1544194148041/helloWorld/WEB-INF/classes/iseries/wsbeans/helloworld/MinusculeListesImb.java:285: erreur : Symbole introuvable
getpresponse().getgroupesOut().getgroupeOut()[intind1] = new TGroupeOut();
^
Symbole : méthode getgroupesOut()
Emplacement : classe Response
/www/WSTB/webservices/temp/helloWorld_1544194148041/helloWorld/WEB-INF/classes/iseries/wsbeans/helloworld/MinusculeListesImb.java:292: erreur : Symbole introuvable
getpresponse().getgroupesOut().getgroupeOut()[intind1].setchaineOut_length((Short)as400bin21.toObject(presponseOutputBuf,presponseOutputBufOffset));
^
Symbole : méthode getgroupesOut()
Emplacement : classe Response
/www/WSTB/webservices/temp/helloWorld_1544194148041/helloWorld/WEB-INF/classes/iseries/wsbeans/helloworld/MinusculeListesImb.java:295: erreur : Symbole introuvable
getpresponse().getgroupesOut().getgroupeOut()[intind1].util_setchaineOut(new String[10], false);
^
Symbole : méthode getgroupesOut()
Emplacement : classe Response
/www/WSTB/webservices/temp/helloWorld_1544194148041/helloWorld/WEB-INF/classes/iseries/wsbeans/helloworld/MinusculeListesImb.java:304: erreur : Symbole introuvable
getpresponse().getgroupesOut().getgroupeOut()[intind1].getchaineOut()[intind2] = Util.trimRight((String)as400text1.toObject(presponseOutputBuf,presponseOutputBufOffset));
^
Symbole : méthode getgroupesOut()
Emplacement : classe Response
7 erreurs
Merci.