You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Alex Kotchnev <ak...@gmail.com> on 2009/12/31 00:41:38 UTC

GAE & T5 : Passing a request to the T5 pipeline from a servlet

I've been struggling a bit w/ getting the GAE blobstore API to upload files
into a GAE T5 based app. All of the examples include using the blobstore
service to create a URL to which the file is uploaded, after which the
blobstore passes the control to a URL provided by user, e.g. :

url = blobstoreService.createUploadUrl("/upload")   // after the upload is
done, GAE was supposed to "post" to this URL

My initial take was to use the T5 component resources to create an event
handling URL and pass it into the blobstore service, with the expectation
that GAE will then post to my event URL at which point I'd post-process the
upload.

The problem is that it seems that GAE doesn't initiate a new POST request to
the given URL, but just "forwards" the request to it. As a result, because
the request is initially initiated to a non T5 URL, the whole T5 magic
doesn't kick in and my event handler isn't called. However, if I create a
simple servlet, mapped to , say '/upload', it does get called properly.

So, the idea I have is this : create a very simple servlet mapped to
"/upload", and whenever it's called, I'll just pipe in the request into the
T5 infrastructure so that my events get called as I want them to. The
question here is : if I did that, what entrypoint in the API should I use ?

Alternatively, I could certainly look up the T5 registry from the servlet (
I think I know how to do that) and invoke some service in it to "post
process" the uploads.

Can anyone point me where I should be looking at for the entrypoint into the
T5 processing pipeline that I can invoke from the servlet ?

Thanks in advance,

Alex K

Re: GAE & T5 : Passing a request to the T5 pipeline from a servlet

Posted by Dmitry Gusev <dm...@gmail.com>.
Alex,
I haven't tried blobstore service yet, I was using Task Queue API and I got
situation when requests were not processed - my page's onActivate wasn't
called and I thought this is the same issue you had with blobstore.

As I wrote, in my case the issue why onActivate haven't been called was
caused by AccessController which prevented unauthenticated calls.

On Mon, Feb 22, 2010 at 13:36, Alex Kotchnev <ak...@gmail.com> wrote:

> Dmitry,
>   I was unable to get this to work properly. I was able to get the
> blobstore API working on the Dev server as I wanted ( SwfUploader uploading
> multiple to the same URL of my servlet, and then my servlet dispatching to
> the blobstore specified URL). However, when I put it up on the GAE
> infrastructure, that didn't seem to work. I had to revert to restricting
> the
> size of the files (e.g. less than 1MB) and storing the attachments in a
> Blob
> field.
>
>   The blobstore API works fine when uploading one image at a time or if the
> uploader allowed giving it one URL for each image upload (which SwfUploader
> doesn't). What was your usage - did you get it to work as you wanted ?
>
> Regards,
>
> Alex Kotchnev
>
> On Sun, Feb 21, 2010 at 1:57 PM, Dmitry Gusev <dmitry.gusev@gmail.com
> >wrote:
>
> > False alarm, its working, the problem was in AccessController
> >
> > On Sun, Feb 21, 2010 at 17:43, Dmitry Gusev <dm...@gmail.com>
> > wrote:
> >
> > > Hi, Alex!
> > >
> > > Did you had any success with this?
> > >
> > > I have similiar problem now implementing GAE Task Queue API in my T5
> app.
> > >
> > >
> > > On Thu, Dec 31, 2009 at 02:41, Alex Kotchnev <ak...@gmail.com>
> wrote:
> > >
> > >> I've been struggling a bit w/ getting the GAE blobstore API to upload
> > >> files
> > >> into a GAE T5 based app. All of the examples include using the
> blobstore
> > >> service to create a URL to which the file is uploaded, after which the
> > >> blobstore passes the control to a URL provided by user, e.g. :
> > >>
> > >> url = blobstoreService.createUploadUrl("/upload")   // after the
> upload
> > is
> > >> done, GAE was supposed to "post" to this URL
> > >>
> > >> My initial take was to use the T5 component resources to create an
> event
> > >> handling URL and pass it into the blobstore service, with the
> > expectation
> > >> that GAE will then post to my event URL at which point I'd
> post-process
> > >> the
> > >> upload.
> > >>
> > >> The problem is that it seems that GAE doesn't initiate a new POST
> > request
> > >> to
> > >> the given URL, but just "forwards" the request to it. As a result,
> > because
> > >> the request is initially initiated to a non T5 URL, the whole T5 magic
> > >> doesn't kick in and my event handler isn't called. However, if I
> create
> > a
> > >> simple servlet, mapped to , say '/upload', it does get called
> properly.
> > >>
> > >> So, the idea I have is this : create a very simple servlet mapped to
> > >> "/upload", and whenever it's called, I'll just pipe in the request
> into
> > >> the
> > >> T5 infrastructure so that my events get called as I want them to. The
> > >> question here is : if I did that, what entrypoint in the API should I
> > use
> > >> ?
> > >>
> > >> Alternatively, I could certainly look up the T5 registry from the
> > servlet
> > >> (
> > >> I think I know how to do that) and invoke some service in it to "post
> > >> process" the uploads.
> > >>
> > >> Can anyone point me where I should be looking at for the entrypoint
> into
> > >> the
> > >> T5 processing pipeline that I can invoke from the servlet ?
> > >>
> > >> Thanks in advance,
> > >>
> > >> Alex K
> > >>
> > >
> > >
> > >
> > > --
> > > Dmitry Gusev
> > >
> > > AnjLab Team
> > > http://anjlab.com
> > >
> >
> >
> >
> > --
> > Dmitry Gusev
> >
> > AnjLab Team
> > http://anjlab.com
> >
>



-- 
Dmitry Gusev

AnjLab Team
http://anjlab.com

Re: GAE & T5 : Passing a request to the T5 pipeline from a servlet

Posted by Alex Kotchnev <ak...@gmail.com>.
Dmitry,
   I was unable to get this to work properly. I was able to get the
blobstore API working on the Dev server as I wanted ( SwfUploader uploading
multiple to the same URL of my servlet, and then my servlet dispatching to
the blobstore specified URL). However, when I put it up on the GAE
infrastructure, that didn't seem to work. I had to revert to restricting the
size of the files (e.g. less than 1MB) and storing the attachments in a Blob
field.

   The blobstore API works fine when uploading one image at a time or if the
uploader allowed giving it one URL for each image upload (which SwfUploader
doesn't). What was your usage - did you get it to work as you wanted ?

Regards,

Alex Kotchnev

On Sun, Feb 21, 2010 at 1:57 PM, Dmitry Gusev <dm...@gmail.com>wrote:

> False alarm, its working, the problem was in AccessController
>
> On Sun, Feb 21, 2010 at 17:43, Dmitry Gusev <dm...@gmail.com>
> wrote:
>
> > Hi, Alex!
> >
> > Did you had any success with this?
> >
> > I have similiar problem now implementing GAE Task Queue API in my T5 app.
> >
> >
> > On Thu, Dec 31, 2009 at 02:41, Alex Kotchnev <ak...@gmail.com> wrote:
> >
> >> I've been struggling a bit w/ getting the GAE blobstore API to upload
> >> files
> >> into a GAE T5 based app. All of the examples include using the blobstore
> >> service to create a URL to which the file is uploaded, after which the
> >> blobstore passes the control to a URL provided by user, e.g. :
> >>
> >> url = blobstoreService.createUploadUrl("/upload")   // after the upload
> is
> >> done, GAE was supposed to "post" to this URL
> >>
> >> My initial take was to use the T5 component resources to create an event
> >> handling URL and pass it into the blobstore service, with the
> expectation
> >> that GAE will then post to my event URL at which point I'd post-process
> >> the
> >> upload.
> >>
> >> The problem is that it seems that GAE doesn't initiate a new POST
> request
> >> to
> >> the given URL, but just "forwards" the request to it. As a result,
> because
> >> the request is initially initiated to a non T5 URL, the whole T5 magic
> >> doesn't kick in and my event handler isn't called. However, if I create
> a
> >> simple servlet, mapped to , say '/upload', it does get called properly.
> >>
> >> So, the idea I have is this : create a very simple servlet mapped to
> >> "/upload", and whenever it's called, I'll just pipe in the request into
> >> the
> >> T5 infrastructure so that my events get called as I want them to. The
> >> question here is : if I did that, what entrypoint in the API should I
> use
> >> ?
> >>
> >> Alternatively, I could certainly look up the T5 registry from the
> servlet
> >> (
> >> I think I know how to do that) and invoke some service in it to "post
> >> process" the uploads.
> >>
> >> Can anyone point me where I should be looking at for the entrypoint into
> >> the
> >> T5 processing pipeline that I can invoke from the servlet ?
> >>
> >> Thanks in advance,
> >>
> >> Alex K
> >>
> >
> >
> >
> > --
> > Dmitry Gusev
> >
> > AnjLab Team
> > http://anjlab.com
> >
>
>
>
> --
> Dmitry Gusev
>
> AnjLab Team
> http://anjlab.com
>

Re: GAE & T5 : Passing a request to the T5 pipeline from a servlet

Posted by Dmitry Gusev <dm...@gmail.com>.
False alarm, its working, the problem was in AccessController

On Sun, Feb 21, 2010 at 17:43, Dmitry Gusev <dm...@gmail.com> wrote:

> Hi, Alex!
>
> Did you had any success with this?
>
> I have similiar problem now implementing GAE Task Queue API in my T5 app.
>
>
> On Thu, Dec 31, 2009 at 02:41, Alex Kotchnev <ak...@gmail.com> wrote:
>
>> I've been struggling a bit w/ getting the GAE blobstore API to upload
>> files
>> into a GAE T5 based app. All of the examples include using the blobstore
>> service to create a URL to which the file is uploaded, after which the
>> blobstore passes the control to a URL provided by user, e.g. :
>>
>> url = blobstoreService.createUploadUrl("/upload")   // after the upload is
>> done, GAE was supposed to "post" to this URL
>>
>> My initial take was to use the T5 component resources to create an event
>> handling URL and pass it into the blobstore service, with the expectation
>> that GAE will then post to my event URL at which point I'd post-process
>> the
>> upload.
>>
>> The problem is that it seems that GAE doesn't initiate a new POST request
>> to
>> the given URL, but just "forwards" the request to it. As a result, because
>> the request is initially initiated to a non T5 URL, the whole T5 magic
>> doesn't kick in and my event handler isn't called. However, if I create a
>> simple servlet, mapped to , say '/upload', it does get called properly.
>>
>> So, the idea I have is this : create a very simple servlet mapped to
>> "/upload", and whenever it's called, I'll just pipe in the request into
>> the
>> T5 infrastructure so that my events get called as I want them to. The
>> question here is : if I did that, what entrypoint in the API should I use
>> ?
>>
>> Alternatively, I could certainly look up the T5 registry from the servlet
>> (
>> I think I know how to do that) and invoke some service in it to "post
>> process" the uploads.
>>
>> Can anyone point me where I should be looking at for the entrypoint into
>> the
>> T5 processing pipeline that I can invoke from the servlet ?
>>
>> Thanks in advance,
>>
>> Alex K
>>
>
>
>
> --
> Dmitry Gusev
>
> AnjLab Team
> http://anjlab.com
>



-- 
Dmitry Gusev

AnjLab Team
http://anjlab.com

Re: GAE & T5 : Passing a request to the T5 pipeline from a servlet

Posted by Dmitry Gusev <dm...@gmail.com>.
Hi, Alex!

Did you had any success with this?

I have similiar problem now implementing GAE Task Queue API in my T5 app.

On Thu, Dec 31, 2009 at 02:41, Alex Kotchnev <ak...@gmail.com> wrote:

> I've been struggling a bit w/ getting the GAE blobstore API to upload files
> into a GAE T5 based app. All of the examples include using the blobstore
> service to create a URL to which the file is uploaded, after which the
> blobstore passes the control to a URL provided by user, e.g. :
>
> url = blobstoreService.createUploadUrl("/upload")   // after the upload is
> done, GAE was supposed to "post" to this URL
>
> My initial take was to use the T5 component resources to create an event
> handling URL and pass it into the blobstore service, with the expectation
> that GAE will then post to my event URL at which point I'd post-process the
> upload.
>
> The problem is that it seems that GAE doesn't initiate a new POST request
> to
> the given URL, but just "forwards" the request to it. As a result, because
> the request is initially initiated to a non T5 URL, the whole T5 magic
> doesn't kick in and my event handler isn't called. However, if I create a
> simple servlet, mapped to , say '/upload', it does get called properly.
>
> So, the idea I have is this : create a very simple servlet mapped to
> "/upload", and whenever it's called, I'll just pipe in the request into the
> T5 infrastructure so that my events get called as I want them to. The
> question here is : if I did that, what entrypoint in the API should I use ?
>
> Alternatively, I could certainly look up the T5 registry from the servlet (
> I think I know how to do that) and invoke some service in it to "post
> process" the uploads.
>
> Can anyone point me where I should be looking at for the entrypoint into
> the
> T5 processing pipeline that I can invoke from the servlet ?
>
> Thanks in advance,
>
> Alex K
>



-- 
Dmitry Gusev

AnjLab Team
http://anjlab.com