tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Johnny Kewl" <j...@kewlstuff.co.za>
Subject Re: adding servlet definition to context on the fly :Tomcat 5.5
Date Sun, 05 Oct 2008 03:40:54 GMT

----- Original Message ----- 
From: "Martin Gainty" <mgainty@hotmail.com>
To: "Tomcat Users List" <users@tomcat.apache.org>
Sent: Saturday, October 04, 2008 11:39 PM
Subject: RE: adding servlet definition to context on the fly :Tomcat 5.5



doctor john

to followup with the addChild method and if an exception is thrown and you 
determine your container doesnt support child containers..what then?

your diagnosis doctor..

Martin
---------------------------------------
I dont know the history... too young to remember TC 4 ;)
He probably lost his call when filters or something like that was 
introduced... but heres the coders explanation, perhaps it makes sense to 
you...
I just looked at what he was calling before... and its gone ;)
addChild is still functional in container... but in wrapper its an 
exception... some history here somewhere... risk one takes if they work 
outside the intended API... unless that is in the servlet spec... doubt 
it...

/**
 * A <b>Wrapper</b> is a Container that represents an individual servlet
 * definition from the deployment descriptor of the web application.  It
 * provides a convenient mechanism to use Interceptors that see every single
 * request to the servlet represented by this definition.
 * <p>
 * Implementations of Wrapper are responsible for managing the servlet life
 * cycle for their underlying servlet class, including calling init() and
 * destroy() at appropriate times, as well as respecting the existence of
 * the SingleThreadModel declaration on the servlet class itself.
 * <p>
 * The parent Container attached to a Wrapper will generally be an
 * implementation of Context, representing the servlet context (and
 * therefore the web application) within which this servlet executes.
 * <p>
 * Child Containers are not allowed on Wrapper implementations, so the
 * <code>addChild()</code> method should throw an
 * <code>IllegalArgumentException</code>.
 *
 * @author Craig R. McClanahan
 * @version $Revision: 467222 $ $Date: 2006-10-24 05:17:11 +0200 (mar., 24 
oct. 2006) $
 */

--------------------.


> From: john@kewlstuff.co.za
> To: users@tomcat.apache.org
> Subject: Re: adding servlet definition to context on the fly :Tomcat 5.5
> Date: Sat, 4 Oct 2008 21:20:39 +0200
>
>
> ----- Original Message ----- 
> From: <ram.sriharsha@agileitinc.com>
> To: <users@tomcat.apache.org>
> Sent: Saturday, October 04, 2008 5:34 PM
> Subject: adding servlet definition to context on the fly :Tomcat 5.5
>
>
> > Hi,
> > I had written some code to dynamically add a servlet to a context in a
> > deployed applicaiton in Tomcat 4.1. This code basically uses the 
> > catalina
> > loader to obtain the server->engine->host->and context, and invokes the
> > addChild method after configuring a StandardWwrapper to represent the
> > servlet I am adding. This all works fine in Tomcat4.1 and I am able to
> > access the servlet through the right url immediately, without having to
> > restart Tomcat.
>
> I'd luv to see that code... the stuff you playing with is in Tomcat 
> core...
> must have been difficult to debug... perhaps its an embedded app?
>
> But I think this answers your question...
>
>     public void addChild(Container child) {
>
>         throw new IllegalStateException
>             (sm.getString("standardWrapper.notChild"));
>
>     }
>
>     is what addChild now looks like in 6... if they did allow it, now they
> dont (;
>
> Dont think you can blame TC... whoever made that app was doing open heart
> surgery ;)
>
> I've never tried this, but its really interesting... I think I would start
> by having a good look at...
>
>     HttpServlet source code... its an abstract class with a little
> introspection...
>
> but I (think... maybe) that the way to go is to make a servlet... that 
> does
> what HttpServlet servlet does... and then load your sevlet classes into 
> your
> servlet... and call them...
>
> I (think... maybe) maybe that it will come down to doing your own servlet
> mapping... and detection of new classes added... possibly your own uri to 
> a
> "manager" function...
>
> ie I think you can make a servlet intelligent enough to do this... without
> climbing into the engine and doing a liver transplant... and then because
> you now inside the official API... this will never happen again.
>
> In the end it will be something like
> http://domain/contect/addons/ANY_ADD_ON_SERVLETS
>
> ... I'd give that a bash... dont think its a good idea trying the current
> method even if you do find an open vein ;)
>
> Good Luck...
>
> ---------------------------------------------------------------------------
> HARBOR : http://www.kewlstuff.co.za/index.htm
> The most powerful application server on earth.
> The only real POJO Application Server.
> See it in Action : http://www.kewlstuff.co.za/cd_tut_swf/whatisejb1.htm
> ---------------------------------------------------------------------------
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>

_________________________________________________________________
Get more out of the Web. Learn 10 hidden secrets of Windows Live.
http://windowslive.com/connect/post/jamiethomson.spaces.live.com-Blog-cns!550F681DAD532637!5295.entry?ocid=TXT_TAGLM_WL_domore_092008



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


Mime
View raw message