You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Pavel Janoušek <ja...@fonet.cz> on 2008/02/14 14:23:32 UTC

in server.xml and JSP - classloader problem?

	Hello,

	I discovered some terrible situation yesterday...

When my server.xml consists of:

-------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>

<Server
	port="8005"
	shutdown="SHUTDOWN"
>

	<Listener
		className="org.apache.catalina.core.AprLifecycleListener"
	/>
	<Listener
		className="org.apache.catalina.mbeans.ServerLifecycleListener"
	/>
	<Listener
		className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
	/>
	<Listener
		className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"
	/>

	<GlobalNamingResources>

		<Resource
			name="jdbc/SagittaDB"
.....
		/>

	</GlobalNamingResources>

	<!-- Define the Tomcat Stand-Alone Service -->
	<Service
		name="Catalina"
	>

	<!-- Define an AJP 1.3 Connector on port 8009 -->
	<Connector
		address="127.0.0.1"
		port="8009" 
		enableLookups="false"
		protocol="AJP/1.3"
		maxSpareThreads="10"
		minSpareThreads="1"
	/>

	<!-- Define an AJP 1.3 SSL Connector on port 8443 -->
	<Connector
		address="127.0.0.1"
		port="8443"
		enableLookups="false"
		protocol="AJP/1.3"
		maxSpareThreads="10"
		minSpareThreads="1"
		scheme="https"
		secure="true"
	/>

		<Engine
			name="Catalina"
			defaultHost="localhost"
		>

			<Host
				name="paja-devel.fonet.cz"
				appBase="webapps"
				unpackWARs="false"
				autoDeploy="false"
				deployOnStartup="false"
				deployXML="true"
				xmlValidation="false"
				xmlNamespaceAware="true"
				debug="255"
			>

				<Context
					path="/SagittaWebShop"
					docBase="../../eclipse/workspace/SagittaWebShop/web"
					reloadable="true"
				>

					<Realm
						className="org.apache.catalina.realm.DataSourceRealm"
						debug="99"
						dataSourceName="jdbc/KaratDB"
						userTable="dba.user_jsf_webusr"
						userNameCol="usr_login"
						userCredCol="usr_pass"
						userRoleTable="dba.user_jsf_webusr"
						roleNameCol="usr_role"
						localDataSource="true"
					/>

					<ResourceLink
						name="jdbc/KaratDB"
						global="jdbc/SagittaDB"
						type="javax.sql.DataSource"
					/>
				</Context>
			</Host>
		</Engine>
	</Service>
</Server>
------------------------------------------------------

all is all-right.

But when I modify context config as:

-------------------------------------
<Context
		path="/SagittaWebShop"
		docBase="../../eclipse/workspace/SagittaWebShop/web"
		reloadable="true"
>

		<Loader
			reloadable="true" 
			checkInterval="1"
		/>

		<Realm
			className="org.apache.catalina.realm.DataSourceRealm"
			debug="99"
			dataSourceName="jdbc/KaratDB"
			userTable="dba.user_jsf_webusr"
			userNameCol="usr_login"
			userCredCol="usr_pass"
			userRoleTable="dba.user_jsf_webusr"
			roleNameCol="usr_role"
			localDataSource="true"
		/>

		<ResourceLink
			name="jdbc/KaratDB"
			global="jdbc/SagittaDB"
			type="javax.sql.DataSource"
		/>
</Context>
---------------------------------------

- yes, only added <Loader .../> section, I got a error (catalina.log):

-----------------------------------
14.2.2008 13:46:08 org.apache.catalina.core.ApplicationContext log
SEVERE: Error loading WebappClassLoader
  delegate: false
  repositories:
    /WEB-INF/classes/
----------> Parent Classloader:
sun.misc.Launcher$AppClassLoader@cc7ad6
 org.apache.jasper.servlet.JspServlet
java.lang.ClassNotFoundException: org.apache.jasper.servlet.JspServlet
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1363)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1209)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1068)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:448)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
14.2.2008 13:46:08 org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /SagittaWebShop threw load() exception
java.lang.ClassNotFoundException: org.apache.jasper.servlet.JspServlet
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1363)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1209)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1068)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:448)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
14.2.2008 13:46:08 org.apache.commons.modeler.Registry registerComponent
SEVERE: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//paja-devel.fonet.cz/SagittaWebShop,J2EEApplication=none,J2EEServer=none
-----------------------------------------------

	This happened in version of Tomcat 5.5.10 and newer... I'm running Tomcat 5.5.9 for a long time without any error(s), but yesterday I'm preparing upgrade of some servers and try tu update to 5.5.26... 

	In production server(s) isn't necessarily define <Loader... /> section, but in developing environment...

	So is some possible solution of this problem (some config) or it is a BUG in Tomcat 5.5. from 5.5.10?

	Any ideas?

	King regards

Ing. Pavel Janoušek
technická podpora

E-mail: janousek@fonet.cz
FoNet, spol. s r.o.
Za Kovárnou 1, 625 00 Brno
Tel.: +420 543 244 749
Fax.: +420 543 244 751
WWW : http://WWW.FoNet.Cz/ 
 

---------------------------------------------------------------------
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


RE: in server.xml and JSP - classloader problem?

Posted by Pavel Janoušek <ja...@fonet.cz>.
Filip Hanik - Dev Lists <ma...@hanik.com> wrote:
> I'd probably try to set
>> useSystemClassLoaderAsParent="false"
> 
>> http://tomcat.apache.org/tomcat-5.5-doc/config/loader.html

	Thanks, this resolve my problem.

Ing. Pavel Janoušek
technická podpora

E-mail: janousek@fonet.cz
FoNet, spol. s r.o.
Za Kovárnou 1, 625 00 Brno
Tel.: +420 543 244 749
Fax.: +420 543 244 751
WWW : http://WWW.FoNet.Cz/ 
 

---------------------------------------------------------------------
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


Re: in server.xml and JSP - classloader problem?

Posted by Filip Hanik - Dev Lists <de...@hanik.com>.
I'd probably try to set
|useSystemClassLoaderAsParent="false"

|http://tomcat.apache.org/tomcat-5.5-doc/config/loader.html

Filip

Pavel Janoušek wrote:
> 	Hello,
>
> 	I discovered some terrible situation yesterday...
>
> When my server.xml consists of:
>
> -------------------------------------------
> <?xml version="1.0" encoding="UTF-8"?>
>
> <Server
> 	port="8005"
> 	shutdown="SHUTDOWN"
>   
>
> 	<Listener
> 		className="org.apache.catalina.core.AprLifecycleListener"
> 	/>
> 	<Listener
> 		className="org.apache.catalina.mbeans.ServerLifecycleListener"
> 	/>
> 	<Listener
> 		className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
> 	/>
> 	<Listener
> 		className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"
> 	/>
>
> 	<GlobalNamingResources>
>
> 		<Resource
> 			name="jdbc/SagittaDB"
> .....
> 		/>
>
> 	</GlobalNamingResources>
>
> 	<!-- Define the Tomcat Stand-Alone Service -->
> 	<Service
> 		name="Catalina"
> 	>
>
> 	<!-- Define an AJP 1.3 Connector on port 8009 -->
> 	<Connector
> 		address="127.0.0.1"
> 		port="8009" 
> 		enableLookups="false"
> 		protocol="AJP/1.3"
> 		maxSpareThreads="10"
> 		minSpareThreads="1"
> 	/>
>
> 	<!-- Define an AJP 1.3 SSL Connector on port 8443 -->
> 	<Connector
> 		address="127.0.0.1"
> 		port="8443"
> 		enableLookups="false"
> 		protocol="AJP/1.3"
> 		maxSpareThreads="10"
> 		minSpareThreads="1"
> 		scheme="https"
> 		secure="true"
> 	/>
>
> 		<Engine
> 			name="Catalina"
> 			defaultHost="localhost"
> 		>
>
> 			<Host
> 				name="paja-devel.fonet.cz"
> 				appBase="webapps"
> 				unpackWARs="false"
> 				autoDeploy="false"
> 				deployOnStartup="false"
> 				deployXML="true"
> 				xmlValidation="false"
> 				xmlNamespaceAware="true"
> 				debug="255"
> 			>
>
> 				<Context
> 					path="/SagittaWebShop"
> 					docBase="../../eclipse/workspace/SagittaWebShop/web"
> 					reloadable="true"
> 				>
>
> 					<Realm
> 						className="org.apache.catalina.realm.DataSourceRealm"
> 						debug="99"
> 						dataSourceName="jdbc/KaratDB"
> 						userTable="dba.user_jsf_webusr"
> 						userNameCol="usr_login"
> 						userCredCol="usr_pass"
> 						userRoleTable="dba.user_jsf_webusr"
> 						roleNameCol="usr_role"
> 						localDataSource="true"
> 					/>
>
> 					<ResourceLink
> 						name="jdbc/KaratDB"
> 						global="jdbc/SagittaDB"
> 						type="javax.sql.DataSource"
> 					/>
> 				</Context>
> 			</Host>
> 		</Engine>
> 	</Service>
> </Server>
> ------------------------------------------------------
>
> all is all-right.
>
> But when I modify context config as:
>
> -------------------------------------
> <Context
> 		path="/SagittaWebShop"
> 		docBase="../../eclipse/workspace/SagittaWebShop/web"
> 		reloadable="true"
>   
>
> 		<Loader
> 			reloadable="true" 
> 			checkInterval="1"
> 		/>
>
> 		<Realm
> 			className="org.apache.catalina.realm.DataSourceRealm"
> 			debug="99"
> 			dataSourceName="jdbc/KaratDB"
> 			userTable="dba.user_jsf_webusr"
> 			userNameCol="usr_login"
> 			userCredCol="usr_pass"
> 			userRoleTable="dba.user_jsf_webusr"
> 			roleNameCol="usr_role"
> 			localDataSource="true"
> 		/>
>
> 		<ResourceLink
> 			name="jdbc/KaratDB"
> 			global="jdbc/SagittaDB"
> 			type="javax.sql.DataSource"
> 		/>
> </Context>
> ---------------------------------------
>
> - yes, only added <Loader .../> section, I got a error (catalina.log):
>
> -----------------------------------
> 14.2.2008 13:46:08 org.apache.catalina.core.ApplicationContext log
> SEVERE: Error loading WebappClassLoader
>   delegate: false
>   repositories:
>     /WEB-INF/classes/
> ----------> Parent Classloader:
> sun.misc.Launcher$AppClassLoader@cc7ad6
>  org.apache.jasper.servlet.JspServlet
> java.lang.ClassNotFoundException: org.apache.jasper.servlet.JspServlet
> 	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1363)
> 	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1209)
> 	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1068)
> 	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
> 	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)
> 	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)
> 	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
> 	at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
> 	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
> 	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
> 	at org.apache.catalina.core.StandardService.start(StandardService.java:448)
> 	at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
> 	at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> 	at java.lang.reflect.Method.invoke(Unknown Source)
> 	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
> 	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
> 14.2.2008 13:46:08 org.apache.catalina.core.StandardContext loadOnStartup
> SEVERE: Servlet /SagittaWebShop threw load() exception
> java.lang.ClassNotFoundException: org.apache.jasper.servlet.JspServlet
> 	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1363)
> 	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1209)
> 	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1068)
> 	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
> 	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)
> 	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)
> 	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
> 	at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
> 	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
> 	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
> 	at org.apache.catalina.core.StandardService.start(StandardService.java:448)
> 	at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
> 	at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> 	at java.lang.reflect.Method.invoke(Unknown Source)
> 	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
> 	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
> 14.2.2008 13:46:08 org.apache.commons.modeler.Registry registerComponent
> SEVERE: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//paja-devel.fonet.cz/SagittaWebShop,J2EEApplication=none,J2EEServer=none
> -----------------------------------------------
>
> 	This happened in version of Tomcat 5.5.10 and newer... I'm running Tomcat 5.5.9 for a long time without any error(s), but yesterday I'm preparing upgrade of some servers and try tu update to 5.5.26... 
>
> 	In production server(s) isn't necessarily define <Loader... /> section, but in developing environment...
>
> 	So is some possible solution of this problem (some config) or it is a BUG in Tomcat 5.5. from 5.5.10?
>
> 	Any ideas?
>
> 	King regards
>
> Ing. Pavel Janoušek
> technická podpora
>
> E-mail: janousek@fonet.cz
> FoNet, spol. s r.o.
> Za Kovárnou 1, 625 00 Brno
> Tel.: +420 543 244 749
> Fax.: +420 543 244 751
> WWW : http://WWW.FoNet.Cz/ 
>  
>
> ---------------------------------------------------------------------
> 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
>
>
>
>   


---------------------------------------------------------------------
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