Nous avons le scénario suivant:Créer PDF et envoyer du courrier par chameau apache
- client envoie un message XML contenant deux parties
- Première partie du XML contient des informations qui doivent être utilisés pour la création du PDF en utilisant le composant FOP et XSLT
- Deuxième partie du XML contient des informations qui a utilisé dans le corps du message, sujet, etc.
dans le chameau co nfiguration:
- Le XML entrant pourrait être transformé en XSL: FO (en utilisant XSLT)
- Le composant FOP peut être appelé et qu'un document PDF est disponible
- Le composant électronique peut être appelé, mais que J'ai les problèmes suivants
- Le message d'origine contenant les informations pour le courrier n'est plus disponible. Une possibilité est de stocker le corps d'origine dans un en-tête ou une propriété
- Le fichier PDF doit être ajouté en pièce jointe. Je pense qu'il n'y a pas de processeur par défaut, de filtre, etc. disponibles pour déplacer le corps vers une pièce jointe. Donc, je dois écrire mon propre processeur
Questions
- Quelqu'un at-il un exemple de configuration de chameau pour un cas d'utilisation similaire?
- Il peut s'agir d'un motif Splitter, mais l'exemple actuel contient plusieurs ordres dans le fichier XML et notre fichier XML ne contient aucun élément multiple mais contient des données. Existe-t-il un autre modèle qui fonctionnera dans ce cas d'utilisation?
Toute suggestion serait très utile complète.
Je l'ai essayé avec la configuration ci-dessous de chameau mais dans la stratégie de fusion le zip n'est jamais présent. On dirait qu'il n'y a pas de réponse de la route createZip
<camel:multicast strategyRef="mergeStrategy">
<camel:to uri="direct:createZip"/>
<camel:to uri="direct:createRequestMessage"/>
</camel:multicast>
<camel:to uri="smtp://[email protected]"></camel:to>
</camel:route>
<camel:route>
<camel:from uri="direct:createZip" />
<camel:from uri="file:////data/tmp/zip/input">
<camel:description>Reading files from the input folder</camel:description>
</camel:from>
<camel:aggregate strategyRef="zipStrategy" eagerCheckCompletion="true" completionFromBatchConsumer="true">
<camel:correlationExpression>
<camel:constant>true</camel:constant>
</camel:correlationExpression>
<camel:setHeader headerName="dummybody">
<camel:simple>${body}</camel:simple>
</camel:setHeader>
</camel:aggregate>
<camel:setHeader headerName="Strategy-Attachment">
<camel:constant>true</camel:constant>
</camel:setHeader>
</camel:route>
<camel:route>
<camel:from uri="direct:createRequestMessage" />
<camel:to uri="create_request.xslt?saxon=true" />
<camel:setHeader headerName="Content-Type">
<camel:constant>text/html</camel:constant>
</camel:setHeader>
<camel:setHeader headerName="Strategy-Body">
<camel:constant>true</camel:constant>
</camel:setHeader>
</camel:route>