Hi Everyone!
I am experiencing a weird behaviour embedding the Windows Media Player into an HTML (JSF) page.
Every file I reference using an URL is being loaded from the server twice.
This behaviour happens even if I open the URL using the installed Windows Media Player 11.
To make things clear, I have a servlet that send files back to the caller. This servlet is called exactly once when transfering PDFs, Images, Text files, ....
BUT as soon as the Windows Media Player requests a video file from the servlet it is being called twice. The first request to the servlet fails, becauce the client - Windows Media Player - has closed the outputstream. [1]
To get rid of everything - JSF framework specific - if have written a simple HTML Test file. [2] Unfortunately the same behaviour.
The weird thing is that even the installed Windows Media Player 11 calls the servlet twice on opening the Video URL.
Any ideas, hints? Is this a known problem with the Windows Media Player?
Thanks in Advance for both your time and knowledge!
Greetings
Stefan
[1]
DEBUG | 29-05-2009 09:42:22:484 | filters.ClientInformationFilter | 2D636E72F9D33B44008C4B0E59E6F5E8 | Requested URL:
http://atpcp1xc:8080/xdc/transferDoc...-wmv&wmcache=0
DEBUG | 29-05-2009 09:42:25:109 | servlets.TransferDocumentServlet | 2D636E72F9D33B44008C4B0E59E6F5E8 | doGet started ...
WARN | 29-05-2009 09:42:25:125 | utils.Utils | 2D636E72F9D33B44008C4B0E59E6F5E8 | I/O problems when trying to close output stream for file
ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:319)
at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:288)
at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:98)
at com.siemens.sis.ihe.xdc.bl.utils.Utils.copyStreams(Utils.java:84)
at com.siemens.sis.ihe.xdc.gui.servlets.TransferDocumentServlet.doGet(TransferDocumentServlet.java:182)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.siemens.sis.ihe.xdc.gui.filters.ClientInformationFilter.doFilter(ClientInformationFilter.java:91 )
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:740)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
at org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:299)
at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:964)
at org.apache.coyote.Response.action(Response.java:183)
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:314)
... 21 more
[2]
<html>
<head>
<title>
</title>
</head>
<body>
<object classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"
type="application/x-oleobject"
id="Player"
standby="Loading content..."
codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701">
<param name="autoStart" value="true"/>
<param name="balance" value="0"/>
<param name="currentPosition" value="0"/>
<param name="enableContextMenu" value="false"/>
<param name="enabled" value="true"/>
<param name="fullScreen" value="false"/>
<param name="mute" value="false"/>
<param name="playCount" value="1"/>
<param name="rate" value="1.0"/>
<param name="uiMode" value="full"/>
<param name="url" value="http://atpcp1xc:8080/xdc/transferDocument.transfer?path=D:\HIBC\FakeRepository1\9487100683\010_Plastic Surgery_Jaw Reconstruction Planning__Dr.Balea_Hospital Vienna 4_.wmv&mimeType=video/x-ms-wmv&wmcache=0"/>
<param name="volume" value="70"/>
</object>
</body>
</html>