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: mu-...@sectra.com From: Christopher Schultz <ch...@christopherschultz.net> To: Tomcat Users List <users@tomcat.apache.org> 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" <ch...@christopherschultz.net> wrote in message > news:4aa03ca3.4010...@christopherschultz.net... > Muthu, > > On 9/3/2009 11:17 AM, muthu.chan...@sectra.se 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: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org