This is a rather common scenario and has came up a few times on this forum.
All you need to do is three things add a Bridge to the fileChannel and make fileChannel a pub-sub channel and most importantly make sure ServiceActivatorProcessResponse and Bridge send to the same output-channel. By doing so you'll accomplish a classic splitter-aggregator pattern.
Make sure you set apply-sequence to 'true' on fileChannel, this way the default aggregator will know when to release the aggregated message (list).
Code:
fileChannel-->saws-->resChannel-->sapr -> aggregatingChannel
| /
-> bridge ---------------------------------/
When you implement custom aggregator you'll get an input as a list consisting of two messages. 1) the original one (coming from the bridge) and 2) the one coming from the WS response. I am sure you know what to do from there.