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