Looking at the tomcat code, it seems pretty likely this is a Tomcat-specific 
issue.

-Ross

On Feb 5, 2010, at 2:01 PM, Naftoli Gugenheim wrote:

> If "any other proxy" includes nginx, then a lot of people!
> 
> -------------------------------------
> chas<c...@munat.com> wrote:
> 
> CRUD. Yes. Exactly what I'm trying to do, and Tomcat developers are making
> it difficult.
> 
> I can say that in Jetty 6, they are definitely passed. I don't know
> whether they are being stripped in Tomcat deliberately (I hope not) or if
> it's a bug. I plan to file a bug report anyway.
> 
> I'm running Jetty directly (inside Maven), but my Tomcat container is
> proxied via Apache 2, so it's remotely possible that Apache is stripping
> the params out of the headers. But I doubt it. Still, if someone has Jetty
> behind an Apache proxy (or any other proxy), it would be nice to know...
> 
> Chas.
> 
> 
>> 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.
>> 
>> 
> 
> 
> -- 
> 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.
> 
> -- 
> 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.
> 

-- 
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.

Reply via email to