Apache Axis has support for streaming messages so that all of the message does not have to be turned into a DOM tree before processing:
or server side: in deploy.wsdd do something similar <service name="Benchmark1Streaming" provider="java:RPC" streaming="on">
on client side: there is property "axis.streaming" to Boolean.TRUE and/or you can can cast to o.a..axis.client.Call and use setStreaming(true). i think both should work?
See http://cvs.apache.org/viewcvs.cgi/ws-axis/java/samples/perf/ for a wsdd and test case that switches this support on.
See discussion of Axis performance for more information.