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

Tomcat ClientAbortException在移动设备上使用BufferedOutputStream在servlet中加载文件,tomcat,audio,safari,smartphone,bufferedoutputstream,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 );

我有一个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(beta版)、默认android浏览器)。 但在两种浏览器中(iPad/iPhone上的Safari和HTC浏览器),我有一个例外。当我通过servlet加载文件时,~15秒后,我收到一个异常:

org.apache.catalina.connector.ClientAbortException: java.io.IOException: APR error: -730053
在safari上,我只能读取一次文件,然后我必须重新加载音频html5标记。在HTC浏览器上,我任何时候都无法阅读


Thx很多。

我找到了方法:需要实施“范围”并使用有效的证书我遇到同样的问题,你能给出一些建议吗?我找到了方法:需要实施“范围”并使用有效的证书我遇到同样的问题,你能给出一些建议吗。