On 2012-3-3, at 下午5:05, Magnus wrote:
Hi,
I would like to stream a big file directly to the browser.
Environment:
backend server---cxf--->front-end server----http---->browser
There is a big file on the backend server. I would like to stream it
directly to the browser.
I have configured webservice and WSS4JOutInterceptor(with
UsernameToken
Timestamp) to support MTOM.
Binding is jaxb.
Big data transfers in a DataHandler field in a FileDTO. DataSource for
DataHandler is a FileDataSource on the backend server side.
It seems there is a problem:
Streaming itself works however cxf always create a temporary file
automatically.
Cxf at first downloads the big file from the backend server to the
front-end
server as a temporary file and streaming could start only after this
downloading. It is a problem because it takes double time to
download the
file into the browser.
Configuration everywhere use streams until ServletOutputStream.
When I call FileDTO getFile() webservice function in the backend
server the
function immediately downloads the big file as a temporary file.
Is there any parameter which can disable immediate file downloading
as a
temporary file? Data should be streamed from DataHandler directly to
the
ServletOutputStream without temporary file.
Is it a side effect of WSS4J Interceptor usage? Is it possible to
swith off
this behaviour?
Hi,
Yeah, if you use WSS4J interceptor you would also use SAAJ Interceptor
which basically break the stream thing you want.
Freeman
--
View this message in context:
http://cxf.547215.n5.nabble.com/MTOM-WSS4J-Big-file-tp5533357p5533357.html
Sent from the cxf-user mailing list archive at Nabble.com.
---------------------------------------------
Freeman Fang
FuseSource
Email:[email protected]
Web: fusesource.com
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com