You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Endre Stølsvik <En...@Stolsvik.com> on 2000/12/07 20:18:39 UTC

Reloading - again..

Sorry for going on and on with this, but I cannot stop being puzzled by
it.

It seems like Tomcat only really reloads the one class that you hit
first. I do a full recompile (deleting all class files just to be sure!),
and look at the tomcat log while clicking reload.

These logs are both right after a full recompile, but hitting different
servlets first:

Here I hit "Initialize" first, and then "design.Topbar" and then
"Workbench".

2000-12-07 07:04:38 - ContextManager: Host = endre.devel.coretrek.com
2000-12-07 07:04:38 - ContextManager: SM: Prefix match /itraks/servlet/Initialize -> /servlet/Initialize/* Initialize(Initialize/null) null
2000-12-07 07:04:38 - ContextManager: SimpleMapper1: Adjust for prefix map /servlet/Initialize 
2000-12-07 07:04:38 - ContextManager: SimpleMapper1: SM: After mapping R( /itraks + /servlet/Initialize + null) Initialize(Initialize/null)
2000-12-07 07:04:38 - Ctx( /itraks ): Pre servlet destroy Initialize(Initialize/null)
2000-12-07 07:04:39 - Ctx( /itraks ): Post servlet destroy Initialize(Initialize/null)
2000-12-07 07:04:39 - ContextManager: Reloading context Ctx( /itraks )
2000-12-07 07:04:39 - Ctx( /itraks ): Pre servlet init Initialize(Initialize/null)
2000-12-07 07:04:39 - Ctx( /itraks ): Post servlet init Initialize(Initialize/null)
2000-12-07 07:04:39 - ContextManager: Host = endre.devel.coretrek.com
2000-12-07 07:04:39 - ContextManager: SM: Prefix match /itraks/servlet/design.Topbar -> /servlet/design.Topbar/* design.Topbar(design.Topbar/null) null
2000-12-07 07:04:39 - ContextManager: SimpleMapper1: Adjust for prefix map /servlet/design.Topbar 
2000-12-07 07:04:39 - ContextManager: SimpleMapper1: SM: After mapping R( /itraks + /servlet/design.Topbar + null) design.Topbar(design.Topbar/null)
2000-12-07 07:04:39 - ContextManager: Host = endre.devel.coretrek.com
2000-12-07 07:04:39 - ContextManager: SM: Prefix match /itraks/servlet/Workbench -> /servlet/Workbench/* Workbench(Workbench/null) null
2000-12-07 07:04:39 - ContextManager: SimpleMapper1: Adjust for prefix map /servlet/Workbench 
2000-12-07 07:04:39 - ContextManager: SimpleMapper1: SM: After mapping R( /itraks + /servlet/Workbench + null) Workbench(Workbench/null)

This is strange right away, because why aren't all the servlets destroyed
right away? I mean, they're all ditched right away, since a context reload
actually puts the whole ClassLoader out of scope and makes a new one to be
able to reload the classes. So why aren't they all destroyed too?


Then this is if I hit Workbench first, and then hit the "design.Topbar".

2000-12-07 07:08:43 - ContextManager: Host = endre.devel.coretrek.com
2000-12-07 07:08:43 - ContextManager: SM: Prefix match /itraks/servlet/Workbench -> /servlet/Workbench/* Workbench(Workbench/null) null
2000-12-07 07:08:43 - ContextManager: SimpleMapper1: Adjust for prefix map /servlet/Workbench 
2000-12-07 07:08:43 - ContextManager: SimpleMapper1: SM: After mapping R( /itraks + /servlet/Workbench + null) Workbench(Workbench/null)
2000-12-07 07:08:43 - Ctx( /itraks ): Pre servlet destroy Workbench(Workbench/null)
2000-12-07 07:08:43 - Ctx( /itraks ): Post servlet destroy Workbench(Workbench/null)
2000-12-07 07:08:43 - ContextManager: Reloading context Ctx( /itraks )
2000-12-07 07:08:43 - Ctx( /itraks ): Pre servlet init Workbench(Workbench/null)
2000-12-07 07:08:43 - Ctx( /itraks ): Post servlet init Workbench(Workbench/null)
2000-12-07 07:08:49 - ContextManager: Host = endre.devel.coretrek.com
2000-12-07 07:08:49 - ContextManager: SM: Prefix match /itraks/servlet/design.Topbar -> /servlet/design.Topbar/* design.Topbar(design.Topbar/null) null
2000-12-07 07:08:49 - ContextManager: SimpleMapper1: Adjust for prefix map /servlet/design.Topbar 
2000-12-07 07:08:49 - ContextManager: SimpleMapper1: SM: After mapping R( /itraks + /servlet/design.Topbar + null) design.Topbar(design.Topbar/null)

Why is this so?

One more thing: Shouldn't the "load-on-startup" servlets also be started
up again on a context-reload?

btw; I'm using tomcat 3.2 final.

-- 
Mvh,
Endre