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 <[email protected]>
> 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, <[email protected]> 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, <[email protected]> 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, <[email protected]> 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 [email protected].
>>>>>>> To unsubscribe from this group, send email to
>>>>>>> [email protected]<liftweb%[email protected]>
>>> <liftweb%[email protected]<liftweb%[email protected]>
>>
>>>>> <liftweb%[email protected]<liftweb%[email protected]>
>>> <liftweb%[email protected]<liftweb%[email protected]>
>>
>>>>>>> .
>>>>>>> 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 [email protected].
>>>>>> To unsubscribe from this group, send email to
>>>>>> [email protected]<liftweb%[email protected]>
>>> <liftweb%[email protected]<liftweb%[email protected]>
>>
>>>>> .
>>>>>> 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 [email protected].
>>>>> To unsubscribe from this group, send email to
>>>>> [email protected]<liftweb%[email protected]>
>>> <liftweb%[email protected]<liftweb%[email protected]>
>>
>>>>> .
>>>>> 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 [email protected].
>>>> To unsubscribe from this group, send email to
>>>> [email protected]<liftweb%[email protected]>
>>> .
>>>> 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 [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected]<liftweb%[email protected]>
>>> .
>>> 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 [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.
>
--
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.