On Mon, Feb 16, 2009 at 3:34 PM, Alan M <[email protected]> wrote:

> I'm using maven for builds.. on .11-SNAPSHOT.. will this go there or
> will I have to switch over to building my own?
>

It'll get built on Hudson and if you do a mvn -U, you'll get it.

See http://scala-tools.org/hudson/job/lift/

When build 344 is complete, the change will be there for you.


>
> Alan
>
> On Feb 16, 3:31 pm, David Pollak <[email protected]>
> wrote:
> > Alan,
> > I'm modifying Lift.  It turns out that it treated everything
> > like application/x-www-form-urlencoded if there was not another handler.
> >
> > I'm changing the code so that if the submission is not marked with
> > Content-Type application/x-www-form-urlencoded, you will have access to
> the
> > post body.
> >
> > Give me 40 minutes to commit the change up.
> >
> > Thanks,
> >
> > David
> >
> >
> >
> > On Mon, Feb 16, 2009 at 3:28 PM, Alan M <[email protected]>
> wrote:
> >
> > > Oh.. so I can stuff data in the body, even if the message is a PUT
> > > message?  Not sure how to do that with curl without sending a bogus
> > > file along for the ride.. but if that's what you are saying then I
> > > guess that'd be acceptable.  With the exception of some GIF/PNG/JPEG
> > > images now and again, the primary data will be XML files, some large
> > > some small.  The primary sender will be a Javascript application
> > > making the webservice calls directly.
> >
> > > Alan
> >
> > > On Feb 16, 3:18 pm, Tim Perrett <[email protected]> wrote:
> > > > I can understand why he wants to use PUT - its more resource
> > > > orientated.
> >
> > > > I think we should stop talking about file uploads in the traditional
> > > > sense, as the current lift design is "doing the right thing" for
> > > > normal form based uploads.. However, lets talk about passing large
> > > > entity bodies with web services and what *exactly* you are
> transfering
> > > > and why.
> >
> > > > When im passing large bodies around in my web services, the binary
> > > > content is usually passed as element content (base64 encoded) inside
> > > > my XML body message  as I might be passing some other meta-data such
> > > > as name or whatever (in the case of an image). For example, my
> request
> > > > body might look like:
> >
> > > > <image>
> > > >   <name>some image</name>
> > > >   <data>....</data>
> > > > </image>
> >
> > > > Where <data> include a base64 encoded image or whatever. This is of
> > > > course an example, but you see how it can work?
> >
> > > > Thanks
> >
> > > > Tim
> >
> > > > On Feb 16, 11:10 pm, David Pollak <[email protected]>
> > > > wrote:
> >
> > > > > On Mon, Feb 16, 2009 at 2:58 PM, Alan M <[email protected]>
> > > wrote:
> >
> > > > > > OK I think I follow up to a point.. so Lift needs to know that
> it's
> > > > > > multipart to work correctly with a put, and it doesn't.  That
> much I
> > > > > > get, seems like Put is just broken.
> >
> > > > > We are relying on the Apache multipart library to handle multipart
> > > uploads.
> > > > >  The library conforms to RFC 1867 which only defines multipart file
> > > uploads
> > > > > for POSTs (not PUT, etc.)
> >
> > > > >http://www.ietf.org/rfc/rfc1867.txt
> >
> > > > > Are you writing your Lift app to a particular spec and if so, can
> you
> > > point
> > > > > us to that spec?
> >
> > > > > Thanks,
> >
> > > > > David
> >
> > > > > What I don't understand is that
> >
> > > > > > last bit though..  When you say:
> > > > > > > you can pass your entity body and just access the
> > > > > > > req.body property
> > > > > > Where could you do that?  I don't build the requests myself, so
> would
> > > > > > I have to modify the Lift code to do this?  Is there an extension
> > > > > > point to make that happen?  (like set request builder here or
> > > > > > something and a class I can extend)
> >
> > > > > > Alan
> > > > > > On Feb 16, 2:25 pm, Tim Perrett <[email protected]> wrote:
> > > > > > > Would it not be because of:
> >
> > > > > > > ServletFileUpload.isMultipartContent(request) // Req.scala line
> 79
> >
> > > > > > > If you then reference the commons lib, the source of that
> method
> > > looks
> > > > > > > like:
> >
> > > > > > >     public static final boolean isMultipartContent(
> > > > > > >             HttpServletRequest request) {
> > > > > > >         if (!"post".equals(request.getMethod().toLowerCase()))
> {
> > > > > > >             return false;
> > > > > > >         }
> > > > > > >         String contentType = request.getContentType();
> > > > > > >         if (contentType == null) {
> > > > > > >             return false;
> > > > > > >         }
> > > > > > >         if (contentType.toLowerCase().startsWith(MULTIPART)) {
> > > > > > >             return true;
> > > > > > >         }
> > > > > > >         return false;
> > > > > > >     }
> >
> > > > > > > As DPP says, it looks as though you will *need* to make it a
> POST
> > > > > > > request, and also set the content type to multi-part.
> >
> > > > > > > Alternatively, if, like me, you dont want to use overloaded
> post as
> > > > > > > its not very ROA, you can pass your entity body and just access
> the
> > > > > > > req.body property... you wouldnt get any of the useful lift
> > > helpers,
> > > > > > > but of course it depends on your use case :-)
> >
> > > > > > > Cheers
> >
> > > > > > > Tim
> >
> > > > > > > On Feb 16, 10:05 pm, David Pollak <
> [email protected]>
> > > > > > > wrote:
> >
> > > > > > > > On Mon, Feb 16, 2009 at 1:53 PM, Alan M <
> > > [email protected]>
> > > > > > wrote:
> >
> > > > > > > > > I'm still working away on my web service project (mentioned
> > > many
> > > > > > > > > months ago when I first lobbied to get Scala used) and we
> rely
> > > > > > heavily
> > > > > > > > > on Put requests to create new resources.  My first attempt
> > > involving
> > > > > > > > > Put and I've been stumped.
> >
> > > > > > > > > I've been able to run the server (using mvn/jetty) and my
> > > webapp gets
> > > > > > > > > a PUT request (says so in the log produced by Jetty) and it
> > > does
> > > > > > > > > everything it's supposed to in my code, except it never
> gets
> > > the put
> > > > > > > > > file.  I used curl to make the call and it shows the bar
> saying
> > > it's
> > > > > > > > > uploading the file and finishing.  In the server code, the
> Reqs
> > > body
> > > > > > > > > is an Empty Box and it's uploadedFiles is an empty List.
> >
> > > > > > > > If you do a POST with the same data, does it work correctly
> > > > > > (uploadedFiles
> > > > > > > > gets populated)?
> >
> > > > > > > > > So my question is, where do I get that data from?  or is
> there
> > > > > > > > > something else I need to do to turn that feature on?
> (enable
> > > file
> > > > > > > > > upload or something?)
> >
> > > > > > > > > Alan
> >
> > > > > > > > > P.S. Something that might be relevant, since it's a
> webservice
> > > I'm
> > > > > > > > > using the stateless dispatcher.. does that effect how/when
> the
> > > > > > > > > paramCalculator works and therefore messes this up somehow?
> >
> > > > > > > > --
> > > > > > > > Lift, the simply functional web frameworkhttp://liftweb.net
> > > > > > > > Beginning Scalahttp://www.apress.com/book/view/1430219890
> > > > > > > > Follow me:http://twitter.com/dpp
> > > > > > > > Git some:http://github.com/dpp
> >
> > > > > --
> > > > > Lift, the simply functional web frameworkhttp://liftweb.net
> > > > > Beginning Scalahttp://www.apress.com/book/view/1430219890
> > > > > Follow me:http://twitter.com/dpp
> > > > > Git some:http://github.com/dpp
> >
> > --
> > Lift, the simply functional web frameworkhttp://liftweb.net
> > Beginning Scalahttp://www.apress.com/book/view/1430219890
> > Follow me:http://twitter.com/dpp
> > Git some:http://github.com/dpp
>



-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Git some: http://github.com/dpp

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to