apetrov
I'm new here

UX-Bridge Adapter Anwortgenerierung

Jump to solution

Hallo Community, auf Seite 17 bzw. 71 der UX-Bridge_DeveloperDocumentation_DE.pdf Developer Dokumentation ist die Rede von einer Antwort die

FirstSpirit vom jeweiligen Adapater erwartet. Muss das XML-Rootelement der Antwort zwingend <uxb_entity> sein? Das erschließt sich mir leider nicht. Sowohl die Camel-Komponente, als auch

in den UX-Bridge Beispielen (https://github.com/e-Spirit/uxbridge-samples) wird als Response ein XML-Dokument mit dem root Element <uxb_entity> gesendet.

Ich würde gerne einen eigenen ResponseHandler implementieren mit z.B. <messageEntity> als root Element.

Grüße Artem

0 Kudos
1 Solution

Accepted Solutions

Hallo Artem,

in der DeveloperDocumentation ist in Kapitel 2.1.2 und 2.1.3 wie Nachrichten an den UX-Bus auzusehen haben. "uxb_entity" ist sozusagen der Nachrichtenheader. Ihr solltet Erweiterungen nur innerhalb des "uxb_content" Tags machen. Dann ist gewährleistet, dass ihr später auch mit zukünftigen Versionen der UX-Bridge kompatibel bleibt. Aktuell wird es auch funktionieren, wenn ihr einen eigenen Tagnamen verwendet, aber das muss nicht immer so bleiben. Wir haben diese Konvention extra eingeführt, um ein einheitliches Format zu gewährleisten.

Bei Antworten sind mir deutlich strickter. Ich habe es nicht ausprobiert, aber es wird wohl nur mit uxb_entity korrekt funktionieren.

Jetzt zu eurer Anforderung: Mir ist immer noch nicht klar, was gegen die Verwendung von uxb_entity spricht. Ihr könnt eure MessageEntity doch einfach in das uxb_content Tag packen und dann in Adapter per XPath genau diesen Teil auslesen und in eurer Bean transformieren. Oder schickt ihr die Nachrichten an ein Drittsystem, dass ihr nicht beeinflussen könnt? Dann könnte man die Nachrichten auf dem Bus entsprechend transformieren.

View solution in original post

0 Kudos
4 Replies
feddersen
Community Manager

Hallo Artem,

ja, das uxb_entity Element und die Attribute sind von uns fest vorgegeben. Wie sieht denn dein Anwendungsfall aus? Wieso möchtest du messageEntity verwenden? Die Antwortnachricht sollte ja nur an unseren UXBService gehen.

Alternativ kannst du auch die Camel-Component verwenden, dann brauchst du dich um das Format der Nachricht gar nicht kümmern. Ein Beispiel findest du unter https://github.com/e-Spirit/uxbridge-samples/blob/master/newsWidget/adapter/mongodbsimple/src/main/w...

Viele Grüße

Christoph

0 Kudos

Bei unserem Anwendungsfall sollen Nachrichten in soziale Kanäle wie Facebook, Twitter etc. publiziert werden. Das (XML) Nachrichtenformat

welches an den UX-Bus (FS_OUT) geschickt wird, ist an die UXB XML Formatvorlage angelehnt, wurde jedoch um weitere Attribute und Knoten ergänzt. Aufgrund dieser Modifizierung

haben wir vor ein eigenes "MessageEntity" mit frei definierbarem root Element / eigene UXB XML Formatvorlage etc. zu implementieren.

Zur Zeit wird rein zu Testzwecken des Adapters die ActiveMQ Web Console genutzt, um eine Message an FS_OUT schicken.

Der Message Body enthält dabei die modifizierte UXB XML Formatvorlagen-Struktur mit verändertem root-Element und weiteren Attributen und Knoten. Dementsprechend gibt es auch

eine (Java) Entity-Representation der XML-Struktur (mit @XmlRootElement(name = "messageEntity")). Diese sollte auch für eine Antwortgenerierung genutzt werden. Daher die Frage, ob eine

Rückmeldung (nach FS_IN) zwingend ein XML mit root Element uxb_entity voraussetzt. Gilt das auch im umgekehrtes Fall: Nachricht aus FS nach FS_OUT.

0 Kudos

Hallo Artem,

in der DeveloperDocumentation ist in Kapitel 2.1.2 und 2.1.3 wie Nachrichten an den UX-Bus auzusehen haben. "uxb_entity" ist sozusagen der Nachrichtenheader. Ihr solltet Erweiterungen nur innerhalb des "uxb_content" Tags machen. Dann ist gewährleistet, dass ihr später auch mit zukünftigen Versionen der UX-Bridge kompatibel bleibt. Aktuell wird es auch funktionieren, wenn ihr einen eigenen Tagnamen verwendet, aber das muss nicht immer so bleiben. Wir haben diese Konvention extra eingeführt, um ein einheitliches Format zu gewährleisten.

Bei Antworten sind mir deutlich strickter. Ich habe es nicht ausprobiert, aber es wird wohl nur mit uxb_entity korrekt funktionieren.

Jetzt zu eurer Anforderung: Mir ist immer noch nicht klar, was gegen die Verwendung von uxb_entity spricht. Ihr könnt eure MessageEntity doch einfach in das uxb_content Tag packen und dann in Adapter per XPath genau diesen Teil auslesen und in eurer Bean transformieren. Oder schickt ihr die Nachrichten an ein Drittsystem, dass ihr nicht beeinflussen könnt? Dann könnte man die Nachrichten auf dem Bus entsprechend transformieren.

0 Kudos

Im Prinzip spricht nichts dagegen. Wir hatten Anfangs viel mit der ActiveMQ Console experimentiert. Dadurch resultierend ein eigenes XML-Format. Vielen Dank für die Auskünfte.

0 Kudos