Thanks Chris. Still not having any luck. Let me give you the snippet of
the code so that you can understand the problem better:
I have a servlet like this
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
// some code
RequestFacade rf = (RequestFacade) request; // this
throws a class cast exception
Request realRequest = new
MyRequestFacade().getRequest(rf);
Context ctx = _realRequest.getContext();
StandardManager sessionMgr = (StandardManager)
ctx.getManager();
sessionMgr.getActiveSessions();
}
When I debug I see that the request object coming into doGet method of the
servlet is RequestFacade but I can't assign it directly to a RequestFacade
object or can't type cast it. Although when I type cast it I don't get any
compilation error but at runtime it throws as a ClassCastException.
Am I doing something stupid here? :-( Looks simple it is so frustrating as
when I debug I can open the RequestFacade object and see the Request
Object, Context, Manager and all the information I need but I don't know
how to access it.
Any thoughts from fresh pair eyes?
Thanks,
------------------------------------------
Muthu Chandir
Sectra North America, Inc.
Phone: (800)307-4425 ext 222
Email: [email protected]
From:
Christopher Schultz <[email protected]>
To:
Tomcat Users List <[email protected]>
Date:
09/04/2009 10:28 AM
Subject:
Re: how to unwrap a Request from RequestFacade
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Bill,
On 9/3/2009 10:47 PM, Bill Barker wrote:
> "Christopher Schultz" <[email protected]> wrote in message
> news:[email protected]...
> Muthu,
>
> On 9/3/2009 11:17 AM, [email protected] wrote:
>>>> I am using tomcat 5.5 and just wanted to write a simple servlet to
get
>>>> some information using StandardManager such as activeSessions,
>>>> expriedSessions, sessionCounter etc.. I am not that familiar with
these
>>>> classes. I noticed when the request comes into my servlet it comes as
>>>> RequestFacade where the org.apache.catalina.connector.Request is
wrapped
>>>> inside it. I haven't figured out how to unwrap the Request object so
that
>>>> I can get the Context from which I can get the Manager
(StandardManager)
>>>> to access the information I need. Any help with a snippet of code to
get
>>>> the Request Object from RequestFacade will be appreciated.
>
> Maybe try something like this:
>
> public class SneekyRequestFacade
> extends RequestFacade
> {
> public SneekyRequestFacade() { super(null); }
>
> public Request getRequest(RequestFacade rf)
> {
> return rf.request;
> }
> }
>
> Now:
>
> RequestFacade rf = ...; // get your requestfacade
> Request req = new SneekyRequestFacade().getRequest(rf);
>
> I think that ought to do it. Isn't OO abuse great?
>
>
>> It is great ;). But you save a couple of lines by just doing straight
>> introspection.
I had thought about that, but I thought the JVM prevented code from
getting-around access privileges by using introspection. Or is that only
when a SecurityManager is running?
- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkqhImUACgkQ9CaO5/Lv0PDVkgCaA9UWhDHNXKdfN2mSPZN1lauK
Z3oAnRphaMCX6vkmjvLH+t/tmUIxp52m
=qxEb
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]