Hi Chris, I'm creating the audio file dynamically from DB and I check if the file exists using File.exists() method.
Before returning the html code with audio tag, I'm verifying that file exists on File System. Thanks! On Mon, Mar 11, 2024 at 2:36 PM Christopher Schultz < ch...@christopherschultz.net> wrote: > Sam, > > On 3/11/24 13:04, Sam wrote: > > On the server side, I'm checking that file exists before returning the > file > > path to the browser. We are also dynamically creating pdf files this way > > and no issues with accessing them. > > How are you checking to see if the file exists? It's possible that your > check-for-existance triggers the "not found" in Tomcat's <Resources> > instance, then you create your file on-disk and return the path to the > browser, then the browser requests the path and gets the cached "not > found". > > > I found something interesting: > > https://tomcat.apache.org/tomcat-9.0-doc/config/resources.html From this > > link: > > *Resources are cached by default.* > > > > I'll try with *Cache-Control* request header and see if it helps! > > This isn't likey to be the problem. I think the cache you are fighting > is the one Tomcat maintains for "resources" which is how Tomcat loads > things from ... well, everywhere. Not caching things like "not found" > makes things go very slowly. > > -chris > > > On Mon, Mar 11, 2024 at 11:46 AM Mark Thomas <ma...@apache.org> wrote: > > > >> On 11/03/2024 11:31, Sam wrote: > >>> Thanks for replying!! > >>> > >>> Yes audio files are generated dynamically from DB.in a Servlet. > >>> > >>> I've verified that audio file exists on file system before returning > the > >>> html code that contains audo control. > >> > >> Is there any chance of an attempt to access the file before it is > >> created? The resources implementation can cache "not found" results for > >> a short period of time. > >> > >> You might want to test the code with a simple text file to determine > >> whether file type is a factor (which seems unlikely but you never know). > >> > >> Mark > >> > >>> > >>> > >>> On Mon, Mar 11, 2024, 5:22 a.m. Mark Thomas <ma...@apache.org> wrote: > >>> > >>>> On 11/03/2024 02:21, Sam wrote: > >>>>> I just upgraded a legacy application from Tomcat 7 to Tomcat 9. It's > >>>>> deployed as a war file. I'm facing a weird issue with audio files > >>>> playback. > >>>>> > >>>>> When loading a page that contains an audio file. First time Tomcat > >>>> returns > >>>>> 404 error but if reloading the page, audio file is loaded properly > and > >> no > >>>>> error from Tomcat. > >>>>> > >>>>> I'm using html 5 audio control to display the file. > >>>>> > >>>>> All other static resources(images, css and js files) are working > >> without > >>>>> any issues. Only audio files are having this issue. > >>>>> > >>>>> I enabled the logs for DefaultServlet in Tomcat. Follwong is the log > >>>> entry > >>>>> when I try to open the audio file first time. I can see 404 being > >>>> returned > >>>>> from server in Chrome dev tools. > >>>>> > >>>>> > >>>>> *09-Mar-2024 20:12:50.747 INFO DefaultServlet.serveResource: Serving > >>>>> resource '/wav/2B916004DFE94FA40446429E1671C893_0001053.mp3' headers > >> and > >>>>> data* > >>>>> Following is the log for 2nd attempt. This time audio is available > and > >>>>> playable in browser. *09-Mar-2024 20:13:00.371 INFO > >>>>> DefaultServlet.serveResource: Serving resource > >>>>> '/wav/2B916004DFE94FA40446429E1671C893_0001053.mp3' headers and data > * > >>>>> *09-Mar-2024 20:13:01.372 INFO DefaultServlet.serveFile: > >>>>> contentType='audio/mpeg'* > >>>> > >>>> Are the audio files generated dynamically on request? > >>>> > >>>> Mark > >>>> > >>>> > >>>>> > >>>>> Here is the audio control code: > >>>>> > >>>>> <div id="audioContainer" style="height:65px; width:100%; > >>>>> visibility:visible; "> > >>>>> <div id="jobAudio" style="height:45px; width: 100%; left:0px; > >>>> bottom:0;" > >>>>>> > >>>>> <audio controls controlsList="nodownload" style="width: > 100%;" > >>> > >>>>> <source > >> src="/wav/2B916004DFE94FA40446429E1671C893_0001053.mp3" > >>>>> type="audio/mpeg" > > >>>>> </audio> > >>>>> </div> > >>>>> </div> > >>>>> I've tried relative path and full path but result is the same in both > >>>> cases. > >>>>> > >>>>> I've spent days trying to solve this but no luck :( > >>>>> > >>>>> I would really appreciate any guidance to solve this issue. > >>>>> > >>>>> Thanks! > >>>>> > >>>> > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > >>>> For additional commands, e-mail: users-h...@tomcat.apache.org > >>>> > >>>> > >>> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > >> For additional commands, e-mail: users-h...@tomcat.apache.org > >> > >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >