AxisService.getWSDL() sends the response body for a ..service?wsdl query, then calls .flush() and .close() for its output stream. Upon return, ListingAgent.processListService() calls .flush() and .close() again for the same stream.
The second close() interferes with the next request on the intermediate ajp connector socket.
I don't know whether calling close() twice should be harmless but, in this case, it is not.
[edit: Actually, the 2nd close() is harmelss. It's the flush() coming after the 1st close() that seems to be the problem.]