You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Rahul Bhargava <co...@hotmail.com> on 2003/02/06 21:52:33 UTC
Multiple Instances Support Broken in Tomcat 4.1.18
Platform : Win2K
Tomcat ver: 4.1.18
Problem: When trying to start a webapp that has been installed/deployed with jar files in WEB-INF/lib
on a TC instance that was started by setting CATALINA_BASE (to get multi instance support),
an exception is thrown by the method - ContextConfig.tldScanJar(). If the jar is unpacked into
WEB-INF/classes the problem goes away. The problem also doesn't occur when CATALINA_BASE is
equal to CATALINA_HOME i.e when webapp is deployed to the single instance running out of
CATALINA_HOME.
To reproduce just deploy the examples war file (created out of the /examples shipped with TC4.1.18 with the addition of any jar into WEB-INF/lib) to any server, in any dir by first setting CATALINA_BASE to a different value than CATALINA_HOME. Looked at the src thru the debugger and it seems like ContextConfig.tldScanJar is trying to open a JarUrlConnection by passing a weird looking url (jar:jndi:/localhost/examples/WEB-INF/lib/commons-discovery.jar!*/) that it is unable to resolve when CATALINA_BASE is set!!
Is there a way to turn of TLD scanner other than modify code ? Seems like it will reduce startup cost significantly
if TLD scan can be disabled when no TLDs are present in the war.
Any workaround other than unjar'ing the jar files in WEB-INF/classes ? I am looking at fixing ContextConfig.java
but would be good to check with this list if there are other solutions.
Basically this rules out using TC in a multi-instance setting unless you are willing to unjar every WEB-INF/lib jar!
_________________________________
Rahul Bhargava