異常求解決
今天碰到一個異常
src = "/12319/upload/events/20170629130951802.wav"
然後在jsp頁面裏面寫了個window.open
window.open(src, '12319Audio', 'height=150px,width=400px,top=150,left=100,toolbar=no, menubar=no,scrollbars=no,resizable=no,location=no,status=no');
誰有沒有碰到過類似的情況,有什麼解決方案沒??
這個打開新窗口的操作有時不會報異常,一旦第一個異常出現後,其他的都會出現異常
關鍵這個操作是純粹的打開一個URL地址,和後臺的唯一關係就是進了一次過濾器,網上實在搜不到答案
最後的結果是音樂文件可以正常播放,而且所有的功能都正常運行,就是在MyEclipse的console欄裏面報異常
ClientAbortException: java.net.SocketException: Software caused connection abort: socket write error
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:388)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:462)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:366)
at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:413)
at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:401)
at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:91)
at org.apache.catalina.servlets.DefaultServlet.copyRange(DefaultServlet.java:2116)
at org.apache.catalina.servlets.DefaultServlet.copy(DefaultServlet.java:1948)
at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:1006)
at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:411)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.asam.buz.common.filter.LoggerMDCFilter.doFilterInternal(LoggerMDCFilter.java:18)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.asam.buz.common.filter.FlashFilter.doFilterInternal(FlashFilter.java:25)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
2017-06-29 18:03:03.209 [http-bio-8080-exec-10] DEBUG com.asam.buz.common.filter.UEditorUploadFilter - url: /12319/upload/events/20170629130957576.wav ,self: false
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:96)
at com.asam.buz.common.filter.UEditorUploadFilter.doFilter(UEditorUploadFilter.java:69)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:215)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:462)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:366)
at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:240)
at org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:84)
at org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:192)
at org.apache.coyote.Response.doWrite(Response.java:504)
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:383)
... 42 more
解決辦法:
如下,在攔截器中第一次請求是正常的,但是第二次請求則請求了三次,而前端只能顯示一個頁面,所以會出異常
2017-06-29 18:13:04.270 [http-bio-8080-exec-9] DEBUG com.asam.buz.common.filter.UEditorUploadFilter - url: /12319/upload/events/20170629130951802.wav ,self: false
2017-06-29 18:13:10.137 [http-bio-8080-exec-9] DEBUG com.asam.buz.common.filter.UEditorUploadFilter - url: /12319/upload/events/20170629130954778.wav ,self: false
2017-06-29 18:13:10.157 [http-bio-8080-exec-4] DEBUG com.asam.buz.common.filter.UEditorUploadFilter - url: /12319/upload/events/20170629130954778.wav ,self: false
2017-06-29 18:13:10.202 [http-bio-8080-exec-4] ERROR com.asam.buz.common.filter.UEditorUploadFilter -自定義過濾器錯誤: null
ClientAbortException: java.net.SocketException: Software caused connection abort: socket write error
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:388)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:462)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:366)
具體怎麼解決???????再議,明天用window.load再試一次
str.push('<a href="javascript:;" οnclick="playAudio(\''+b.url+'\')" class="btn btn-primary btn-sm">試聽</a>');
$(c).html(str.join(" "));
開始使用的是a標籤,相當不穩定,不知道哪一次就會發送很多次請求,網上這樣說:使用a標籤比較簡單。但是出錯後確實詭異。
前端的哥們告訴我,把a標籤改成span標籤
str.push('<span href="javascript:;" οnclick="playAudio(\''+b.url+'\')" class="btn btn-primary btn-sm">試聽</span>');
$(c).html(str.join(" "));
就奇蹟般的好了。。。。。。。。。。。。。。。。。