Crud. Can someone do a survey of how other JVM web frameworks handle the PUT inconsistencies on different containers?
On Fri, Feb 5, 2010 at 9:29 AM, Ross Mellgren <dri...@gmail.com> wrote: > Looking at the Tomcat code, this is explicit. From > org.apache.catalina.connector.Request: > > /** > * Parse request parameters. > */ > protected void parseParameters() { > ... > if (!getMethod().equalsIgnoreCase("POST")) > return; > ... > } > > -Ross > > On Feb 5, 2010, at 11:47 AM, Leo Lännenmäki wrote: > > > Hmpf. I have got the Tomcat PUT problem also. > > > > def statefulDispatchTable: LiftRules.DispatchPF = { > > ... > > case r...@req(List("api", "foo"), "", PutRequest) => () => > > update(req) > > ... > > } > > > > def update(req: Req): LiftResponse = { > > for (name <- req.paramNames) { > > Log.info(name) > > Log.info(req.param(name).openOr("empty")) > > } > > ... > > } > > > > > > On Jetty: > > 209467 [736850...@qtp-566947760-0] INFO lift - param > > 209467 [736850...@qtp-566947760-0] INFO lift - value > > 209476 [736850...@qtp-566947760-0] INFO lift - Service request > > (PUT) /api/foo took 17 Milliseconds > > > > curl -v -X PUT -d "param=value" -b JSESSIONID=v7a6qye5zusv > > http://localhost:8080/api/foo > > * About to connect() to localhost port 8080 (#0) > > * Trying ::1... connected > > * Connected to localhost (::1) port 8080 (#0) > >> PUT /api/foo HTTP/1.1 > >> User-Agent: curl/7.19.5 (x86_64-pc-linux-gnu) libcurl/7.19.5 > OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.15 > >> Host: localhost:8080 > >> Accept: */* > >> Cookie: JSESSIONID=v7a6qye5zusv > >> Content-Length: 49 > >> Content-Type: application/x-www-form-urlencoded > >> > > < HTTP/1.1 200 OK > > < Content-Length: 0 > > < Content-Type: text/html; charset=utf-8 > > < X-Lift-Version: 2.0-M1 > > < Server: Jetty(6.1.22) > > < > > * Connection #0 to host localhost left intact > > * Closing connection #0 > > > > > > > > On Tomcat: > > 170570 [http-8080-2] INFO lift - Service request (PUT) /api/foo took > > 12 Milliseconds > > > > curl -v -X PUT -d "param=value" -b > > JSESSIONID=68EE8A10FFBC2E5383FB9FD2821CF0E1 > http://localhost:8080/myserver/api/foo > > * About to connect() to localhost port 8080 (#0) > > * Trying ::1... connected > > * Connected to localhost (::1) port 8080 (#0) > >> PUT /api/foo HTTP/1.1 > >> User-Agent: curl/7.19.5 (x86_64-pc-linux-gnu) libcurl/7.19.5 > OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.15 > >> Host: localhost:8080 > >> Accept: */* > >> Cookie: JSESSIONID=68EE8A10FFBC2E5383FB9FD2821CF0E1 > >> Content-Length: 49 > >> Content-Type: application/x-www-form-urlencoded > >> > > < HTTP/1.1 200 OK > > < Server: Apache-Coyote/1.1 > > < X-Lift-Version: 2.0-M1 > > < Content-Type: text/html;charset=utf-8 > > < Content-Length: 0 > > < Date: Fri, 05 Feb 2010 16:28:23 GMT > > < > > * Connection #0 to host localhost left intact > > * Closing connection #0 > > > > > > On Feb 4, 10:47 pm, David Pollak <feeder.of.the.be...@gmail.com> > > wrote: > >> Sounds to me like a Tomcat issue... I think we're relying on the > container > >> to parse the body correctly. > >> > >> > >> > >> On Wed, Feb 3, 2010 at 9:15 PM, <c...@munat.com> wrote: > >>> It's POST vs. PUT. I'm using AJAX, so I can do PUTs. > >> > >>> The two are identical, except: > >> > >>> POST instead of PUT > >> > >>> The POST version includes: > >> > >>> Pragma: no-cache > >>> Cache-Control: no-cache > >> > >>> which the PUT does not. In other words, the headers are identical > except > >>> for the above. > >> > >>> In Jetty, no problem. In Tomcat, the params are ignored. They do not > show > >>> up in S.params. At all. > >> > >>> I can't imagine that this is a Lift issue, unless Tomcat makes params > >>> available differently for PUTs than for POSTs, but Jetty does not, and > I'm > >>> the first guy to do PUTs to Lift on Tomcat. But I've emailed the Tomcat > >>> users list and we'll see if it's something simple. If not, I'll put > >>> something on GitHub. > >> > >>> Chas. > >> > >>>> Is it a POST or a GET? > >> > >>>> On Wed, Feb 3, 2010 at 11:44 PM, <c...@munat.com> wrote: > >> > >>>>> Thanks, David. > >> > >>>>> That's a non-trivial exercise for me, so let me chase down another > lead > >>>>> at > >>>>> the moment. If that proves fruitless, I'll bite the bullet and get > >>>>> something up on GitHub. > >> > >>>>> Chas. > >> > >>>>>> Please put together a reproduceable example on GitHub (works in > Jetty, > >>>>>> doesn't work in Tomcat) and we'll look at it. > >> > >>>>>> On Wed, Feb 3, 2010 at 11:48 AM, <c...@munat.com> wrote: > >> > >>>>>>> I have a lift app that works perfectly when I use mvn jetty:run. > Then > >>>>> I > >>>>>>> package it into a war and load it up in Tomcat 6 on the server, and > >>>>> when > >>>>>>> I > >>>>>>> do, suddenly it won't work. > >> > >>>>>>> The issue is with the S.params. I have a form that submits via an > >>>>> Ajax > >>>>>>> PUT > >>>>>>> request. The params are sent in the header just fine. As I said, > >>>>> works > >>>>>>> like a charm on Jetty. But when it gets to Tomcat, the entity is > >>>>> saved > >>>>>>> with blank attributes... i.e., everything worked but the > >>>>>>> S.param("whatever") showed up blank. I tested this by doing > >>>>>>> S.param("whatever").openOr("Phooey") and, indeed, that attribute > was > >>>>> set > >>>>>>> to "Phooey" on the new entity. > >> > >>>>>>> Tomcat issue? Or am I missing something obvious? This form is > running > >>>>> on > >>>>>>> a > >>>>>>> subdomain, so that's where I'm looking now (in server.xml). > >> > >>>>>>> TIA, > >>>>>>> Chas. > >> > >>>>>>> -- > >>>>>>> You received this message because you are subscribed to the Google > >>>>>>> Groups > >>>>>>> "Lift" group. > >>>>>>> To post to this group, send email to lift...@googlegroups.com. > >>>>>>> To unsubscribe from this group, send email to > >>>>>>> liftweb+unsubscr...@googlegroups.com<liftweb%2bunsubscr...@googlegroups.com> > <liftweb%2bunsubscr...@googlegroups.com<liftweb%252bunsubscr...@googlegroups.com> > > > >>> <liftweb%2bunsubscr...@googlegroups.com<liftweb%252bunsubscr...@googlegroups.com> > <liftweb%252bunsubscr...@googlegroups.com<liftweb%25252bunsubscr...@googlegroups.com> > > > >> > >>>>> <liftweb%2bunsubscr...@googlegroups.com<liftweb%252bunsubscr...@googlegroups.com> > <liftweb%252bunsubscr...@googlegroups.com<liftweb%25252bunsubscr...@googlegroups.com> > > > >>> <liftweb%252bunsubscr...@googlegroups.com<liftweb%25252bunsubscr...@googlegroups.com> > <liftweb%25252bunsubscr...@googlegroups.com<liftweb%2525252bunsubscr...@googlegroups.com> > > > >> > >>>>>>> . > >>>>>>> For more options, visit this group at > >>>>>>> http://groups.google.com/group/liftweb?hl=en. > >> > >>>>>> -- > >>>>>> Lift, the simply functional web frameworkhttp://liftweb.net > >>>>>> Beginning Scalahttp://www.apress.com/book/view/1430219890 > >>>>>> Follow me:http://twitter.com/dpp > >>>>>> Surf the harmonics > >> > >>>>>> -- > >>>>>> You received this message because you are subscribed to the Google > >>>>> Groups > >>>>>> "Lift" group. > >>>>>> To post to this group, send email to lift...@googlegroups.com. > >>>>>> To unsubscribe from this group, send email to > >>>>>> liftweb+unsubscr...@googlegroups.com<liftweb%2bunsubscr...@googlegroups.com> > <liftweb%2bunsubscr...@googlegroups.com<liftweb%252bunsubscr...@googlegroups.com> > > > >>> <liftweb%2bunsubscr...@googlegroups.com<liftweb%252bunsubscr...@googlegroups.com> > <liftweb%252bunsubscr...@googlegroups.com<liftweb%25252bunsubscr...@googlegroups.com> > > > >> > >>>>> . > >>>>>> For more options, visit this group at > >>>>>> http://groups.google.com/group/liftweb?hl=en. > >> > >>>>> -- > >>>>> You received this message because you are subscribed to the Google > >>>>> Groups > >>>>> "Lift" group. > >>>>> To post to this group, send email to lift...@googlegroups.com. > >>>>> To unsubscribe from this group, send email to > >>>>> liftweb+unsubscr...@googlegroups.com<liftweb%2bunsubscr...@googlegroups.com> > <liftweb%2bunsubscr...@googlegroups.com<liftweb%252bunsubscr...@googlegroups.com> > > > >>> <liftweb%2bunsubscr...@googlegroups.com<liftweb%252bunsubscr...@googlegroups.com> > <liftweb%252bunsubscr...@googlegroups.com<liftweb%25252bunsubscr...@googlegroups.com> > > > >> > >>>>> . > >>>>> For more options, visit this group at > >>>>> http://groups.google.com/group/liftweb?hl=en. > >> > >>>> -- > >>>> You received this message because you are subscribed to the Google > Groups > >>>> "Lift" group. > >>>> To post to this group, send email to lift...@googlegroups.com. > >>>> To unsubscribe from this group, send email to > >>>> liftweb+unsubscr...@googlegroups.com<liftweb%2bunsubscr...@googlegroups.com> > <liftweb%2bunsubscr...@googlegroups.com<liftweb%252bunsubscr...@googlegroups.com> > > > >>> . > >>>> For more options, visit this group at > >>>> http://groups.google.com/group/liftweb?hl=en. > >> > >>> -- > >>> You received this message because you are subscribed to the Google > Groups > >>> "Lift" group. > >>> To post to this group, send email to lift...@googlegroups.com. > >>> To unsubscribe from this group, send email to > >>> liftweb+unsubscr...@googlegroups.com<liftweb%2bunsubscr...@googlegroups.com> > <liftweb%2bunsubscr...@googlegroups.com<liftweb%252bunsubscr...@googlegroups.com> > > > >>> . > >>> For more options, visit this group at > >>> http://groups.google.com/group/liftweb?hl=en. > >> > >> -- > >> Lift, the simply functional web frameworkhttp://liftweb.net > >> Beginning Scalahttp://www.apress.com/book/view/1430219890 > >> Follow me:http://twitter.com/dpp > >> Surf the harmonics > > > > -- > > You received this message because you are subscribed to the Google Groups > "Lift" group. > > To post to this group, send email to lift...@googlegroups.com. > > To unsubscribe from this group, send email to > liftweb+unsubscr...@googlegroups.com<liftweb%2bunsubscr...@googlegroups.com> > . > > For more options, visit this group at > http://groups.google.com/group/liftweb?hl=en. > > > > -- > You received this message because you are subscribed to the Google Groups > "Lift" group. > To post to this group, send email to lift...@googlegroups.com. > To unsubscribe from this group, send email to > liftweb+unsubscr...@googlegroups.com<liftweb%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/liftweb?hl=en. > > -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Surf the harmonics -- You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to lift...@googlegroups.com. To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/liftweb?hl=en.