Web Service RPGLE Probleme CCSID
Posté : ven. 26 oct. 2018, 12:39:11
Bonjour,
Nous avons 2 partitions IBM i (V7R2 TR8 SF99720 niveau 18032)
Installés : 5770SS1 option 39, JV1 opt 11,14 à 17
variable environnement JAVA_HOME = .../JavaVM/jdk80/32bit
Mon soucis :
J'ai mis en place un web service REST en RPPGLEsur une partition "A" qui me renvoie des caractères accentués.
La réponse s'affiche correctement quand j'appelle le web service via un navigateur (mozilla,...), mais pas via une émulation 5250 à partir de ma partition B
PARTITION A (qui héberge le web service) :
- sysval QCCSID = 297
- Programme RPGLE
- renvoi du JSON
PARTITION B :
- sysval QCCSID = 65535, mais profil avec ccsid 297
- Appel du WebService via un SQLRPGLE ou via STRSQL
SELECT cast(substr(Reponse, 1, 1000) as varchar(1000))
FROM
(VALUES(SYSTOOLS.HTTPGETCLOB(
'http://[MonSysteme]/web/services/MonInfo/123456', ''))) ws(Reponse)
RENVOI : {"CODERETOUR":"Non Trouvé", ....}
====> probleme de conversion de CCSID quelque part, mais ou ?
idem si je met dans mon header :
'<header name="Content-Type" value="application/json;charset=UTF_8"/>'
Si j'appelle un web service sur internet qui renvoie des caractères accentué à partir de ma partition B ceux ci s'affichent correctement.
Je pense qu'il pourrait s'agir de la mise en place du web service et d'une config du serveur APACHE (V2.6) ou du web service
J'ai essayé à plusieurs endroit de mettre CCSID= UTF8, FR, 297, ... mais rien ne change malgré restart du serveur web.
Nous avons 2 partitions IBM i (V7R2 TR8 SF99720 niveau 18032)
Installés : 5770SS1 option 39, JV1 opt 11,14 à 17
variable environnement JAVA_HOME = .../JavaVM/jdk80/32bit
Mon soucis :
J'ai mis en place un web service REST en RPPGLEsur une partition "A" qui me renvoie des caractères accentués.
La réponse s'affiche correctement quand j'appelle le web service via un navigateur (mozilla,...), mais pas via une émulation 5250 à partir de ma partition B
PARTITION A (qui héberge le web service) :
- sysval QCCSID = 297
- Programme RPGLE
- renvoi du JSON
PARTITION B :
- sysval QCCSID = 65535, mais profil avec ccsid 297
- Appel du WebService via un SQLRPGLE ou via STRSQL
SELECT cast(substr(Reponse, 1, 1000) as varchar(1000))
FROM
(VALUES(SYSTOOLS.HTTPGETCLOB(
'http://[MonSysteme]/web/services/MonInfo/123456', ''))) ws(Reponse)
RENVOI : {"CODERETOUR":"Non Trouvé", ....}
====> probleme de conversion de CCSID quelque part, mais ou ?
idem si je met dans mon header :
'<header name="Content-Type" value="application/json;charset=UTF_8"/>'
Si j'appelle un web service sur internet qui renvoie des caractères accentué à partir de ma partition B ceux ci s'affichent correctement.
Je pense qu'il pourrait s'agir de la mise en place du web service et d'une config du serveur APACHE (V2.6) ou du web service
J'ai essayé à plusieurs endroit de mettre CCSID= UTF8, FR, 297, ... mais rien ne change malgré restart du serveur web.