On Mon, Mar 25, 2013 at 11:54 AM, Howard W. Smith, Jr. <
smithh032...@gmail.com> wrote:

> On Mon, Mar 25, 2013 at 9:00 AM, Thad Humphries 
> <thad.humphr...@gmail.com>wrote:
>
>> On Sun, Mar 24, 2013 at 4:46 PM, Konstantin Kolinko
>> <knst.koli...@gmail.com>wrote:
>>
>> > 2013/3/25 Thad Humphries <thad.humphr...@gmail.com>:
>> > > I have a web-app that uses a servlet for downloading files from a
>> > > repository--PDF, Office, images, zip, etc. It works with desktop
>> > > browsers--IE, Firefox, Chrome, and Safari--on their various
>> platforms. It
>> > > also works fine with Firefox from Android (2.3 and 4.x tested).
>> However
>> > > when I try with Android's default WebKit browser, the servlet fails
>> > > immediately with org.apache.catalina.connector.ClientAbortException
>> (so
>> > > says the stderr log).
>> >
>> > 1. Is this issue specific to some kind of files, or it occurs with all
>> of
>> > them?
>> >
>>
>> All of them--PDF, XLS, DOC, DOCX, TIFF, ZIP, etc. Every file type I've
>> tried.
>>
>
> Hmmm, interesting thread (and responses so far). I think I am aware of
> this 'Android default Webkit browser' you are referring to. I always avoid
> using it, and download Google Chrome from Google Play store to my Android
> devices, and I don't think I ever tested my web app with the default
> browser installed on Android devices.
>
> I have downloaded PDF files (generated in-memory) from my java/JSF web app
> to Android device, and I have never seen this ClientAbortException. my web
> app also has at least one iPad enduser (which has Google Chrome installed
> on iPad). I am unaware of his experience and I don't think he downloads PDF
> files from web app to his iPad, but I am quite confident that it works or
> will work. :)
>
> > >
>>
> > > I suspect this is a problem with mobile WebKit, and that circumventing
>> > the
>> > > abort might be a "bad thing" even if it's possible. However I thought
>> I'd
>> > > inquire here if there is a Tomcat way around it. If not, it seems my
>> > > alternatives are (1) use Java Mail to mail the user the file, since
>> mail
>> > > apps open their attachments; and (2) write iOS and Android apps file
>> > query
>> > > and downloading. Neither prospect thrills me.
>>
>
> Okay, i just tested this with/in my web app on my Google Nexus 7 (android,
> of course). I offer Download, Print, and View hyperlinks within the web
> app. Mind you, this is PrimeFaces xhtml below.
>
> ---download---
> <p:commandLink value="Download" ajax="false"
>
>  actionListener="#{pf_ordersController.refreshContractsToDownload()}">
>     <p:fileDownload value="#{contractToDownload.file}"/>
> </p:commandLink>
>
> Test and results:
>
> clicked Download button, PDF downloaded to Google Nexus 7 (Google Chrome
> browser, of course), showed up in notifications, instead of PDF Viewer app,
> I selected to open the PDF document in Adobe Acrobat (app that was
> downloaded from Google Play).
>
> ---view---
> <h:commandLink value="View" target="_blank"
>
>  actionListener="#{pf_ordersController.refreshContractsToDownload()}">
>     <p:fileDownload value="#{contractToDownload.file}"
>                     contentDisposition="inline"/>
> </h:commandLink>
>
> Test and results:
>
> clicked View button, I saw another web page tab open rather quickly in the
> Google Chrome browser on Google Nexus 7, and then the new tab closed
> immediately, and then I saw the 'Starting download' toast (at bottom of
> Google Nexus 7), but I didn't see the file in notifications or downloads,
> and I didn't see any exceptions in my TomEE/tomcat7 logs.
>
> With that said, maybe I just duplicated this issue/exception that you have
> been experiencing. If I'm not mistaking, PrimeFaces is using the servlet
> solution for file downloads.
>
> So, based on this test of mine, it is best to offer a 'download' hyperlink
> 'only' on mobile devices as I am already detecting mobile devices when they
> login to the web app.
>
> Thanks for this topic. now I know what i 'need' to do. :)
>
>
Forgot to mention; i would definitely provide an option for files to be
emailed to endusers. my web app has that option as well as it is more
reliable.

i have found that endusers do a lot of multi-tasking on mobile devices, and
mobile browsers seem to lose connection when they go to some other app. i
may not be describing this correctly, but I have noticed this behavior,
myself.

Reply via email to