Operation mapping
- •http:listener (source) → a @RestController method with @GetMapping / @PostMapping and the same path
- •http:request → WebClient.get()/post()...retrieve()
- •response status / headers → ResponseEntity with the same status and header mapping
Before and after: inbound listener
<http:listener config-ref="HTTP_Listener" path="/orders"/>@RestController
class OrdersController {
@GetMapping("/orders")
public ResponseEntity<Object> getOrders() {
// flow body
}
}Before and after: outbound request
<http:request method="GET" url="https://api.example.com/orders"/>webClient.get()
.uri("https://api.example.com/orders")
.retrieve()
.bodyToMono(String.class)
.block();Mule's HTTP requester has no default response-size limit. When you convert to WebClient, raise the in-memory buffer (maxInMemorySize) so large responses don't fail — a subtle behavioural difference that a naive migration misses.
How the conversion is validated
HTTP is validated end-to-end against a live Mule runtime: the converted Spring Boot app is deployed alongside the original and the same requests are replayed against both, with every response field, status code, and header compared. In our reference conversion the HTTP endpoints match the Mule runtime byte-for-byte.
