
💡 WSO2 Micro Integrator et CDATA : la solution magique pour vos scripts JavaScript !
Vous avez déjà ressenti ce frisson d’appréhension juste avant d’intégrer des données externes dans votre base PostgreSQL via WSO2 Micro Integrator ?
Vous savez, ce petit doute persistant : « Est-ce que les développeurs ont vraiment respecté le format JSON attendu ? ».
Rassurez-vous, vous n’êtes pas seul !
Aujourd’hui, je partage avec vous une astuce qui combine simplicité et efficacité grâce aux sections CDATA dans les scripts JavaScript utilisés par WSO2 Micro Integrator. Et, bien sûr, notre complice Marius sera là pour rendre tout ça plus ludique ! ✅

Bonjour !
Je suis Jean-Marc HENRY, ingénieur ESI, consultant IT/IS pour les entreprises depuis plus de 35 ans, et fondateur de LMVI Conseil.
À travers ce blog, je vous propose d’explorer ensemble tous les 15 jours les grands ou petits (!) sujets de l’informatique.
Ici, on parlera de sujets qui me servent quotidiennement et qui me tiennent à cœur, comme le Nocode, l’IA, l’IT, l’IS ou l’architecture logicielle et un peu WSO2.
D’ailleurs, je ne suis pas seul à rédiger ces billets !
Je suis accompagné de mon assistant IA prénommé Marius. C’est un bon pote d’Ollama et de ChatGPT (entre autres, car il a un sacré réseau !).
Il est assez secret et ne me dit pas tout sur la manière dont il m’aide à écrire mes articles. En revanche, je ne publie rien qui n’ait été validé par des sources sûres ou testé !
C’est parti, on vous embarque !
1. WSO2 Micro Integrator et RabbitMQ : gérer les données avec PostgreSQL
Commençons par poser les bases : WSO2 Micro Integrator permet d’intégrer facilement des messages provenant d’une file RabbitMQ vers PostgreSQL grâce à un programme Java.
Simple, non ? Oui, mais… il y a souvent un « mais » dans l’intégration technique !
Lorsque les messages entrants ne correspondent pas exactement au schéma de notre base de données, le programme Java regroupe toutes les données imprévues dans un champ générique appelé datas
. Cette solution prévient les erreurs mais génère parfois des incohérences ou des données peu exploitables.
🤖 Marius : « C’est un peu comme un tiroir fourre-tout chez toi. Tu y ranges tout ce qui ne rentre pas ailleurs, mais quand il s’agit de retrouver ta clé USB, bon courage ! »
2. Pourquoi utiliser CDATA pour intégrer du JavaScript dans WSO2 ?
Voici le principe de base :
Voici le principe de base : corriger les messages entrants avec un script JavaScript externe encapsulé dans une section CDATA.
Mais qu’est-ce que CDATA exactement ?
C’est un mécanisme XML très simple qui permet d’inclure du texte non échappé (comme du JavaScript) dans vos fichiers XML. Cela permet de garder un code propre, lisible et sans erreurs d’échappement, notamment quand on manipule des caractères spéciaux ou des symboles comme les ampersands (&&
).
🤖 Marius : « CDATA, c’est comme une bulle protectrice pour votre code. Tout est permis à l’intérieur, et XML ne viendra pas jouer la police pour contrôle votre code ! » 🛡️
3. Exemple de code : CDATA pour un JavaScript lisible et sans erreurs.
🚨 Avant (JavaScript échappé, difficile à lire) :
<root>
function mediate(mc) {
if (payload.table === "Loyalty" && payload.data && payload.data.record) {
// traitement...
}
}
</root>
✅ Après (avec CDATA, clair et lisible) :
Avec CDATA, fini les confusions et les erreurs d’échappement : votre code JavaScript reste propre et intuitif !
<script language="js"><![CDATA[
function mediate(mc) {
if (payload.table === "Loyalty" && payload.data && payload.data.record) {
// traitement clair et lisible...
}
}
]]></script>
4. WSO2 Micro Integrator : intégrer un script JavaScript externe avec CDATA
Pour aller plus loin, voici un exemple concret de séquence WSO2 utilisant un script externe encapsulé avec CDATA :
<?xml version="1.0" encoding="UTF-8"?>
<sequence name="ProcessMessageSequence" trace="disable" xmlns="<http://ws.apache.org/ns/synapse>">
<!-- Log initial -->
<log level="custom">
<property name="Status" value="Message Entrant"/>
<property expression="json-eval($)" name="Message"/>
</log>
<enrich>
<source clone="true" type="body"/>
<target property="originalMessage" type="property"/>
</enrich>
<!-- Extraction et traitement de la table JSON -->
<property expression="json-eval($.table)" name="Table" scope="default" type="STRING"/>
<script function="verifyScript" key="conf:/scripts/verifJS.xml" language="js"/>
<script key="{get-property('scriptToUse')}" language="js"/>
<!-- Transmission vers la classe Java -->
<property name="sequential" scope="default" type="STRING" value="true"/>
<property expression="json-eval($)" name="messageJson" scope="default" type="STRING"/>
<class name="com.amarena.Message2Database">
<property expression="$sys:config_odh_url" name="dbUrl"/>
<property expression="$sys:config_odh_username" name="dbUser"/>
<property expression="$sys:config_odh_password" name="dbPass"/>
</class>
<!-- Log final -->
<log level="custom">
<property name="Status" value="Completed"/>
<property name="Message" value="Traitement terminé"/>
<property expression="get-property('Table')" name="ProcessedTable"/>
</log>
</sequence>
5. Meilleures Pratiques pour Utiliser CDATA avec WSO2 et PostgreSQL.
Voici quelques bonnes pratiques pour une intégration sans douleur :
- Externalisez vos scripts JavaScript : placez-les dans un dossier dédié comme
./registry/config/scripts
pour faciliter la maintenance. - Utilisez CDATA pour intégrer du JavaScript dans XML : vous gagnerez en lisibilité et limiterez les erreurs.
- Soyez vigilant sur les conversions de dates : convertissez-les systématiquement vos rn ISO 8601 pour éviter les surprises côté PostgreSQL.
🤖 Marius : « avec CDATA, fini les nuits blanches à chercher ce maudit caractère d’échappement . »
6. Conclusion : adoptez CDATA, vous ne reviendrez plus en arrière !
Intégrer vos scripts JavaScript via CDATA dans vos séquences XML avec WSO2 Micro Integrator est un choix gagnant. Simplicité, meilleure lisibilité, gain de temps, et stress réduit pour vos équipes.
Alors, prêt à adopter CDATA pour vos prochaines intégrations 🌟 ?
PS : si vous souhaitez recevoir la classe JAVA, contactez-moi et je vous la ferai parvenir en code source à adapter selon vos besoins : jmh@lmvi.eu
Qui sommes-nous ?
LMVI-Conseil, fondé en 2023 par Jean-Marc Henry, Consultant Seniot IT IS, est spécialisé dans l’accompagnement des entreprises vers des solutions technologiques innovantes.
Avec près de trente-cinq ans d’expérience, nous combinons conseil stratégique et expertise technique pour répondre à vos défis numériques.