Mam aplikację, która odbiera wiadomość HL7 i wysyła odpowiedź potwierdzenia. Używam cytrusów z komponentem CAMEL MLL, aby wysłać tę wiadomość HL7. Co próbuję osiągnąć, ma być w stanie przeczytać potwierdzenie, aby go porównać.

Obecnie mam test z hl7Payload, zmienną łańcuchową z zawartością HL7. W moim kontekście cytrusowym mam:

<citrus-camel:sync-endpoint id="mllpOutEndpoint"
                            camel-context="mllpContext"
                            endpoint-uri="mllp:localhost:6662"/>

Próbowałem wyodrębnić nagłówek, który znalazłem na Dokumentacja wielbłąda:

send("mllpOutEndpoint")
    .fork(true)
    .messageType(MessageType.PLAINTEXT)
    .payload(hl7Payload)
    .extractFromHeader("CamelMllpAcknowledgementString", "receivedAck");

echo("${receivedAck}");

Ale pojawia się ten błąd:

com.consol.citrus.exceptions.UnknownElementException: Could not find header element CamelMllpAcknowledgementString in received header

Wszystko działa dobrze bez extractFromHeader(). Aplikacja odbiera wiadomość HL7, wysyła ACK i przejścia testowe, ale staram się uzyskać zawartość ACK, aby dokonać dalszych testów. Czego tutaj tęsknię?

-1
Dorminum 8 styczeń 2020, 17:54

1 odpowiedź

Najlepsza odpowiedź

Mam to:

async().actions(
    send("mllpOutEndpoint")
            .messageType(MessageType.PLAINTEXT)
            .payload(hl7Payload),

    receive("mllpOutEndpoint")
            .header("CamelMllpAcknowledgementType", "AA")
);
0
Dorminum 9 styczeń 2020, 09:48