Reputation: 21173
I need to POST a REST service call and get the data it returns (all of this is with JSON). I have an outbound-gateway with its reply-channel as a chain, and the chain has one transformer.
<int-http:outbound-gateway
url="#{appProperties['rootUrl']}#{appProperties['myMethod']}"
request-channel="myRequestChannel" reply-channel="myResponseChannel" >
</int-http:outbound-gateway>
<int:channel id="myResponseChannel"/>
<int:chain input-channel="myResponseChannel">
<int:transformer ref="genericResponseTransformer"/>
</int:chain>
However when I debug through the transformer, the payload I get back is just an HttpStatus object.
Maybe I'm doing something wrong? Any help would be greatly appreciated. Thanks!
Upvotes: 4
Views: 5753
Reputation: 9149
If you do not specify expected-response-type
in your gateway, the default behavior is that the response message contains only status code (expected-response-type is null). Try setting expected-response-type="java.lang.String"
:
<int-http:outbound-gateway
url="#{appProperties['rootUrl']}"
http-method="#{appProperties['myMethod']}"
expected-response-type="java.lang.String"
request-channel="myRequestChannel" reply-channel="myResponseChannel" />
Upvotes: 9