2017-02-10 1 views
0

Ich arbeite mit Mule 3.8 und muss eine Datei zum Ziel-REST-Dienst in JSON (Base64) senden.Eine Datei in JSON an REST-Dienst in Mule senden 3.8

Ich versuche, Optionen zu finden, aber keiner von ihnen funktioniert nicht. Ich habe eine Datei in meinem Payload oder ich kann es aus der Datei lesen.

Hier ist mein Ansatz. Generieren Sie JSON in der Dataweave-Umwandlung mithilfe eines Skripts, und fügen Sie den Dateiinhalt hinzu (transformiere zu base64). Dadurch erhalten wir JSON im erforderlichen Format. Allerdings müssen wir auch Dateiinhalt in JSON hinzufügen (Beispiel JSON ist unten). Wir können den Dateiinhalt unter Verwendung von #[message.inboundAttachments['file'].dataSource.content] in Payload abrufen, aber nicht sicher, wie Sie das gleiche an Dataweave übergeben.

> { "form_data": { "name": 'xyz' }, "files": [ { "fileid": "id1", 
> "filedata": "base64 file data" }] } 
+0

Es ist nicht klar, was Sie verlangen. Sie haben Ihre Daten als fieldfiledata-Wert und das ist ein Stück Daten. Wie BLOB oder etwas ähnliches. Dataweave arbeitet damit als ein Stück. Ist es Ihr Ziel, Daten aus diesem BLOB zu extrahieren? Transformiere es dann von base64, definiere Metadaten und benutze sie. Das sind 3 Schritte im Flow. Ist es das, was du willst? – Alex

Antwort

0

(Posted Lösung im Namen des OP).

Ich habe benutzerdefinierte Java-Transformer verwendet und alle Daten aus MuleMessage-Objekt abgerufen. Erstellt den Json-Wert und setzt ihn in Payload zurück.