ClientAbortException在移动设备上使用BufferedOutputStream在servlet中加载文件

时间:2015-09-16 13:40:59

标签: tomcat audio safari smartphone bufferedoutputstream

我有一个servlet,它使用BufferedOutputStream加载音频文件,如下所示:

BufferedInputStream in= new BufferedInputStream( new FileInputStream( file), DEFAULT_BUFFER_SIZE );
BufferedOutputStream out= new BufferedOutputStream( response.getOutputStream(), DEFAULT_BUFFER_SIZE );

byte[] buffer= new byte[DEFAULT_BUFFER_SIZE];
int size;
while ( ( size= in.read( buffer) ) > 0 ) {
    out.write( buffer, 0, size);
}

此文件用于音频html5标记(如果浏览器不支持,则使用swf播放器)。 它适用于某些浏览器(在Windows上:IE6-10,Firefox,Chrome,Safari。在智能手机上:Chrome,Firefox(测试版),默认的Android浏览器)。 但在2个浏览器(iPad / iPhone上的Safari和HTC浏览器)中,我有一个例外。当我通过我的servlet加载文件时,~15 seconde之后,我收到一个例外:

org.apache.catalina.connector.ClientAbortException: java.io.IOException: APR error: -730053

在safari上,我只能读取一次文件,然后我必须重新加载音频html5标签。在HTC浏览器上,我无法随时阅读。

很多。

0 个答案:

没有答案