- Dieses Thema hat 4 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 3 Jahren, 5 Monaten von Markus Franke.
- Post
-
- 22. November 2020 um 20:28 Uhr
Hallo,wenn ich den http Adapter synchron nutzen will um ggf. individuelle http-Payload Antworten zu erstellen, finde ich nur die Möglichkeit eines folgenden Antwortaufbaus (hier in JSON):
{"tc:RESPONSE": { "tc:processSync_Resp": { "tc:message": { "type": "EventSync", "creator": "EventSyncCreator", "created": "2020-11-22+010020:21:38", "content": { "ROOT": { "Blub": "blablabla" }}}}}} Dabei wird der individuelle Teil "content" samt der "tc:RESPONSE" ausgegeben. Frage: Könnte man evtl nur den tag "content" inkl. Unterbaum als Payload definieren?
- Dieses Thema wurde geändert vor 3 Jahren, 12 Monaten von vikl.
00
- Replies
-
- 23. November 2020 um 8:21 Uhr
Hat sich wohl erledigt:Im Ausgangsmapping per XPath auf “\\content” suchen/filtern
00- 23. November 2020 um 8:34 Uhr
Seit TRANSCONENCT 2.3.4 gibt es noch eine andere Möglichkeit. Erstellen Sie einen HTTP-Eingangsadapter vom Verbindungstyp “JSON”. Lassen Sie das Feld “Erfolgsantwort” leer und stellen Sie die Einstellung “Verarbeitung” auf den Wert “Synchron”.Im dazu konfigurierten Prozess können Sie mit einer Transformation die JSON-Antwort erzeugen.
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text" encoding="UTF-8" omit-xml-declaration="yes" /> <xsl:template match="/">{ "Blub": "blablabla" } </xsl:template> </xsl:stylesheet>
Im Ende-Ereignis des Prozesses wählen Sie dann das Ergebnis der Transformation als Ergebnis aus.
Ihr TRANSCONNECT-Team
00- 19. Mai 2021 um 10:13 Uhr
Ich habe nun versucht den neuen Mechanismus der Version 2.3.4 anzuwenden und wollte in der Transformation für die Ende/Ergebnis Nachricht die http-Header wie folgt setzen:<xsl:param name=”HTTPStatusCode” />
<xsl:param name=”HTTPHeaderFields” />
<xsl:template match=”/”>
<xsl:value-of
select=”java:put( $HTTPHeaderFields, ‘Content-Disposition’,’attachment;filename=123.pdf’ )” />
<xsl:value-of
select=”java:put( $HTTPHeaderFields, ‘Content-Type’, ‘application/pdf’ )” />Dieses führt bei der Ausführung jedoch zum Fehler:
com.sqlgmbh.tc.processing.ProcessException: error transforming message: error transforming message: terminated due to an error: java.lang.NoSuchMethodException: For extension function, could not find method java.lang.String.put([ExpressionContext,] #STRING, #STRING).: For extension function, could not find method java.lang.String.put([ExpressionContext,] #STRING, #STRING).00- 15. Juni 2021 um 12:33 Uhr
Der von ihnen verwendete Mechanismus zum Überschreiben der HTTP Response Header Felder funktioniert nur für den Verbindungstyp “Default” und muss in der Transformation die beim Ausgangsmapping des Adapters angegeben wird spezifiert werden.Für den bei ihnen verwendeten Verbindungstyp “JSON” ist der HTTP Response Code immer auf 200 und der Content-Type auf “application/json” festgesetzt.
Das Überschreiben dieser Felder in der Transformation im Prozess für die Ende/Ergebnis Nachricht ist damit aktuell nicht möglich.
00
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.