You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Sharun superstar <sa...@gmail.com> on 2011/09/29 15:27:09 UTC

Regarding missing requst parameter infos in RequestFacade

Hi,
   I am using cocoon 2.1.9 as my web application frame work on tomcat 6.0.33

I get strange problem that I get request object and also able to get values
of
querystring and sessionid from the request object. (RequestFacade)

But when try to get request-parameter using the same object it some times
gives empty as value.(even if the request parameter
is there in the request).

Refreshing the same request url on browser (Firefox) again give me request
parameter but consequent tries
ends in empty request-parameter.

I need help that how to check at which point the request parameter is
initialized by tomcat.

Thanks!

with regards,
Saravanan.N

Re: [OT] Regarding missing requst parameter infos in RequestFacade

Posted by Sharun superstar <sa...@gmail.com>.
Hi Christopher,
              Thanks for the reply. I still have confusion it may be related
to tomcat based on the scenario that
even RequestFacade doesnt have request parameter values but has sessionid,
querystring, hostname etc

My request is processed as doGet, and all the process go smooth until it hit
global sitemap (cocoon) of my webapp.
There I just use the request parameter and do a parameterselecttest based on
my req-param.

here is the sample code: (Global sitemap)

<map:match pattern="myapps/**">
                   <map:act type="debugaction"> <!-- just to see
RequestFacade values -->
                        <map:parameter name="sessionid"
value="{request-param:jsessionid}"/> (empty sometimes with retry of same
request!)
                        <map:parameter name="requst_query"
value="{request:queryString}" />   (always there in all tries)
                    </map:act>
                <map:select type="regexp-header-wget">
                    <map:parameter name="header-name" value="user-agent" />
                    <map:when test="wget" />
                    <map:when test="java" />
                    <map:otherwise>
                        <map:mount check-reload="yes"
src="myapp/sitemap.xmap" uri-prefix="myapp" pass-through="true" />
                    </map:otherwise>
                </map:select>
            </map:match>

when the request hits the match pattern and I use a simple action which has
get the parameter values.
The strange thing I used to get sessionid as empty when try to get from
request parameter but in request I
has sessionid, querystring and all values I need.

The request parameter is not there even in RequestFacade too.

I will check http request and response also.

Thanks!

with regards,
Saravanan.N

On Thu, Sep 29, 2011 at 5:55 PM, Christopher Schultz <
chris@christopherschultz.net> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Sharun,
>
> Marking OT because this is almost certainly not a Tomcat issue, but
> Cocoon configuration or something else.
>
> On 9/29/2011 9:27 AM, Sharun superstar wrote:
> > I am using cocoon 2.1.9 as my web application frame work on tomcat
> > 6.0.33
>
> I'm on Cocoon 2.1.11. You and me both need to upgrade badly! I also
> happen to be using Tomcat 6.0.32 in production.
>
> > I get strange problem that I get request object and also able to
> > get values of querystring and sessionid from the request object.
> > (RequestFacade)
>
> So... that's how things are supposed to work, so that's not a problem.
>
> > But when try to get request-parameter using the same object it some
> > times gives empty as value.(even if the request parameter is there
> > in the request).
>
> Exactly what does your configuration look like? We have pipelines like
> this:
>    <map:match pattern="report/full.xml">
>      <map:generate
> src="{global:base-url}/report.xml.do
> ;jsessionid={request:requestedSessionId}?id={request-param:id}"
> />
>
>      <map:transform
> src="{global:stylesheet-url}/responses-to-cinclude.xsl">
>        <map:parameter name="base-url" value="{global:base-url}" />
>        <map:parameter name="include-foo"
>                      value="{request-param:include-foo}" />
>      </map:transform>
>
>      <map:transform
> src="{global:stylesheet-url}/resources-to-cinclude.xsl">
>        <map:parameter name="rsid-param" value="{request-param:rsid}" />
>      </map:transform>
>
>      <map:transform type="cinclude" />
>
>      <map:serialize type="xml" />
>    </map:match>
>
> The above {request-param:foo} settings seem to work reliably for me.
> All of our requests are GET... all POST requests are handled by
> non-Cocoon-based code.
>
> > Refreshing the same request url on browser (Firefox) again give me
> > request parameter but consequent tries ends in empty
> > request-parameter.
>
> That's certainly strange. Have you tried observing the HTTP traffic
> using something like fiddler, LiveHTTPHeaders, etc. to see what the
> client is sending?
>
> > I need help that how to check at which point the request parameter
> > is initialized by tomcat.
>
> Request parameters are read from POST requests the first time any of
> the ServletRequest.getParameter* family of methods are called. I'm not
> entirely sure when GET parameters are parsed... probably at the same
> time. If you use {request-param:foo}, that will translate (eventually)
> into a call to ServletRequest.getParameter("foo"), so this should work
> consistently.
>
> - -chris
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (MingW32)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
> iEYEARECAAYFAk6ElQ0ACgkQ9CaO5/Lv0PCqOgCeLMRx2dQOONiQAYHCjf3zH/d/
> iXYAoJcaWJK7kjmDP4spi3bkKu+sccla
> =Kiw1
> -----END PGP SIGNATURE-----
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

Re: [OT] Regarding missing requst parameter infos in RequestFacade

Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Sharun,

Marking OT because this is almost certainly not a Tomcat issue, but
Cocoon configuration or something else.

On 9/29/2011 9:27 AM, Sharun superstar wrote:
> I am using cocoon 2.1.9 as my web application frame work on tomcat
> 6.0.33

I'm on Cocoon 2.1.11. You and me both need to upgrade badly! I also
happen to be using Tomcat 6.0.32 in production.

> I get strange problem that I get request object and also able to
> get values of querystring and sessionid from the request object.
> (RequestFacade)

So... that's how things are supposed to work, so that's not a problem.

> But when try to get request-parameter using the same object it some
> times gives empty as value.(even if the request parameter is there
> in the request).

Exactly what does your configuration look like? We have pipelines like
this:
    <map:match pattern="report/full.xml">
      <map:generate
src="{global:base-url}/report.xml.do;jsessionid={request:requestedSessionId}?id={request-param:id}"
/>

      <map:transform
src="{global:stylesheet-url}/responses-to-cinclude.xsl">
        <map:parameter name="base-url" value="{global:base-url}" />
        <map:parameter name="include-foo"
                      value="{request-param:include-foo}" />
      </map:transform>

      <map:transform
src="{global:stylesheet-url}/resources-to-cinclude.xsl">
        <map:parameter name="rsid-param" value="{request-param:rsid}" />
      </map:transform>

      <map:transform type="cinclude" />

      <map:serialize type="xml" />
    </map:match>

The above {request-param:foo} settings seem to work reliably for me.
All of our requests are GET... all POST requests are handled by
non-Cocoon-based code.

> Refreshing the same request url on browser (Firefox) again give me
> request parameter but consequent tries ends in empty
> request-parameter.

That's certainly strange. Have you tried observing the HTTP traffic
using something like fiddler, LiveHTTPHeaders, etc. to see what the
client is sending?

> I need help that how to check at which point the request parameter
> is initialized by tomcat.

Request parameters are read from POST requests the first time any of
the ServletRequest.getParameter* family of methods are called. I'm not
entirely sure when GET parameters are parsed... probably at the same
time. If you use {request-param:foo}, that will translate (eventually)
into a call to ServletRequest.getParameter("foo"), so this should work
consistently.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk6ElQ0ACgkQ9CaO5/Lv0PCqOgCeLMRx2dQOONiQAYHCjf3zH/d/
iXYAoJcaWJK7kjmDP4spi3bkKu+sccla
=Kiw1
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Regarding missing requst parameter infos in RequestFacade

Posted by Sharun superstar <sa...@gmail.com>.
On Thu, Sep 29, 2011 at 3:27 PM, Sharun superstar <
saravanan.nedunchezhiyan@gmail.com> wrote:

> Hi,
>    I am using cocoon 2.1.9 as my web application frame work on tomcat
> 6.0.33
>
> I get strange problem that I get request object and also able to get values
> of
> querystring and sessionid from the request object. (RequestFacade)
>
> But when try to get request-parameter using the same object it some times
> gives empty as value.(even if the request parameter
> is there in the request).
>
> Refreshing the same request url on browser (Firefox) again give me request
> parameter but consequent tries
> ends in empty request-parameter.
>
> I need help that how to check at which point the request parameter is
> initialized by tomcat.
>
> Thanks!
>
> with regards,
> Saravanan.N