Hello,

I have a simple app that proxies a SOAP API using JSON over REST/HTTP.  I am 
having trouble when trying to track metrics using the micrometer component.
This route works and returns a JSON string:

rest("/rest")
    .post("/verify")
        .type(AddressIn.class)
        .outType(AddressOut.class)
        .description("Verify an address.")
        .to("direct:verify");
from("direct:verify")
    .routeId("sendToSoap")
    .process(e -> {
        ...
    })
    .to(ExchangePattern.InOut,
            "cxf:"
            + CLNVERIFY_URL
            + "?wsdlURL=AddressCleanse.wsdl"
            + "&serviceClass=" + CLNBatchSoap.class.getName()
            + "&dataFormat=PAYLOAD"
            + "&loggingFeatureEnabled=true")
    .process(e -> {
        ...
    })
    .marshal().json(JsonLibrary.Jackson);


I am testing the micrometer component to track metrics. When I add the 
micrometer component to the end of the route, a Base64 string of the JSON 
object is returned.

    .marshal().json(JsonLibrary.Jackson)
    .to("micrometer:timer:soapRequestTime?action=stop");

I assume that this is because I am adding an extra component after the object 
is marshalled and before it's passed back to the previous route, but I didn't 
see anything in the documentation that would show that this is what would 
happen. Is there something simple I am missing, or do I need to just use the 
base64 component to convert it back to a UTF-8 string?

Thanks for your help,

Isaiah Inuwa

Reply via email to