We use Tomcat 8.0.9 for our applications. Tomcat server package, we created
required directories at the same level as conf. We create db2 folder and put
db2 client jars. Created mq folder and put mq client jars. We also use some
property files(name-value pair) and place those files under properties folder.
Refer that in catalina.properties as below
Then updated catalina.properties as below
common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/db2/*.jar","${catalina.home}/mq/*.jar","${catalina.home}/wasejb/*.jar","${catalina.home}/conf","${catalina.home}/properties"
Our applications work fine. Not sure if this got changed in next versions.
Ambica.
-----Original Message-----
From: Venkata Reddy P [mailto:[email protected]]
Sent: Friday, May 27, 2016 8:06 AM
To: Tomcat Users List <[email protected]>
Subject: RE: tomcat8.0.33 classpath/classloader issues
Hi,
As Ambica suggested, I have tried by setting different properties
"common.loader, shared.loader, server.loader" in catalina.properties but no
luck. I have tried generating the logs using -Djava.security.debug=all.
Will this security (scl: getPermissions ProtectionDomain
(file:/C:/tomcat8.0.33/lib/tomcat-coyote.jar <no signer certificates>) cause
any problem for class loading while loading the jars?
log4j:WARN No appenders could be found for logger
(org.apache.tomcat.util.digester.Digester).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more
info.
java.lang.NoClassDefFoundError:
org/apache/coyote/http11/AbstractHttp11JsseProtocol
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.apache.catalina.connector.Connector.<init>(Connector.java:70)
at
org.apache.catalina.startup.ConnectorCreateRule.begin(ConnectorCreateRule.java:62)
at
org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1178)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown
Source)
at
org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown
Source)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown
Source)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1451)
at org.apache.catalina.startup.Catalina.load(Catalina.java:552)
at org.apache.catalina.startup.Catalina.load(Catalina.java:603)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)
Caused by: java.lang.ClassNotFoundException:
org.apache.coyote.http11.AbstractHttp11JsseProtocol
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 37 more
jar: beginEntry META-INF/MANIFEST.MF
jar: done with meta!
jar: nothing to verify!
scl: getPermissions ProtectionDomain (file:/C:/tomcat8.0.33/bin/bootstrap.jar
<no signer certificates>)
sun.misc.Launcher$AppClassLoader@18b4aac2
<no principals>
java.security.Permissions@387c703b (
("java.lang.RuntimePermission" "exitVM")
("java.io.FilePermission" "\C:\tomcat8.0.33\bin\bootstrap.jar" "read")
)
scl:
jar: beginEntry META-INF/MANIFEST.MF
jar: done with meta!
jar: nothing to verify!
scl: getPermissions ProtectionDomain (file:/jre8/lib/ext/tomcat-juli.jar <no
signer certificates>)
sun.misc.Launcher$ExtClassLoader@3ecf72fd
<no principals>
java.security.Permissions@483bf400 (
("java.io.FilePermission" "\C:\jre8\lib\ext\tomcat-juli.jar" "read")
)
scl:
jar: beginEntry META-INF/MANIFEST.MF
jar: done with meta!
jar: nothing to verify!
scl: getPermissions ProtectionDomain
(file:/C:/jre8/lib/ext/tomcat-juli-adapters.jar <no signer certificates>)
sun.misc.Launcher$ExtClassLoader@3ecf72fd
<no principals>
java.security.Permissions@1fbc7afb (
("java.io.FilePermission" "\C:\jre8\lib\ext\tomcat-juli-adapters.jar" "read")
)
scl:
jar: beginEntry META-INF/MANIFEST.MF
jar: done with meta!
jar: nothing to verify!
scl: getPermissions ProtectionDomain (file:/C:/jre8/lib/ext/log4j-1.2.16.jar
<no signer certificates>)
sun.misc.Launcher$ExtClassLoader@3ecf72fd
<no principals>
java.security.Permissions@75bd9247 (
("java.io.FilePermission" "\C:\jre8\lib\ext\log4j-1.2.16.jar" "read")
)
scl:
log4j:ERROR Could not find value for key log4j.appender.DEBUG
log4j:ERROR Could not instantiate appender named "DEBUG".
jar: beginEntry META-INF/MANIFEST.MF
jar: done with meta!
jar: nothing to verify!
scl: getPermissions ProtectionDomain (file:/C:/tomcat8.0.33/lib/catalina.jar
<no signer certificates>)
java.net.URLClassLoader@520a3426
<no principals>
java.security.Permissions@18eed359 (
("java.io.FilePermission" "\C:\tomcat8.0.33\lib\catalina.jar" "read")
)
scl:
jar: beginEntry META-INF/MANIFEST.MF
jar: done with meta!
jar: nothing to verify!
scl: getPermissions ProtectionDomain
(file:/C:/tomcat8.0.33/lib/tomcat-util-scan.jar <no signer certificates>)
java.net.URLClassLoader@520a3426
<no principals>
java.security.Permissions@50b494a6 (
("java.io.FilePermission" "\C:\tomcat8.0.33\lib\tomcat-util-scan.jar" "read")
)
scl:
jar: beginEntry META-INF/MANIFEST.MF
jar: done with meta!
jar: nothing to verify!
scl: getPermissions ProtectionDomain
(file:/C:/tomcat8.0.33/lib/tomcat-coyote.jar <no signer certificates>)
java.net.URLClassLoader@520a3426
<no principals>
java.security.Permissions@6737fd8f (
("java.io.FilePermission" "\C:\tomcat8.0.33\lib\tomcat-coyote.jar" "read")
)
scl:
jar: beginEntry META-INF/MANIFEST.MF
jar: done with meta!
jar: nothing to verify!
scl: getPermissions ProtectionDomain
(file:/C:/tomcat8.0.33/lib/tomcat-util.jar <no signer certificates>)
java.net.URLClassLoader@520a3426
<no principals>
java.security.Permissions@5e853265 (
("java.io.FilePermission" "\C:\tomcat8.0.33\lib\tomcat-util.jar" "read")
)
scl:
jar: beginEntry META-INF/MANIFEST.MF
jar: done with meta!
jar: nothing to verify!
scl: getPermissions ProtectionDomain
(file:/C:/tomcat8.0.33/lib/catalina-ha.jar <no signer certificates>)
java.net.URLClassLoader@520a3426
<no principals>
java.security.Permissions@4d3167f4 (
("java.io.FilePermission" "\C:\tomcat8.0.33\lib\catalina-ha.jar" "read")
)
scl:
jar: beginEntry META-INF/MANIFEST.MF
jar: done with meta!
jar: nothing to verify!
scl: getPermissions ProtectionDomain
(file:/C:/jre8/lib/ext/apache-xercesImpl.jar <no signer certificates>)
sun.misc.Launcher$ExtClassLoader@3ecf72fd
<no principals>
java.security.Permissions@7a30d1e6 (
("java.io.FilePermission" "\C:\jre8\lib\ext\apache-xercesImpl.jar" "read")
)
scl:
jar: beginEntry META-INF/MANIFEST.MF
jar: done with meta!
jar: nothing to verify!
scl: getPermissions ProtectionDomain
(file:/C:/tomcat8.0.33/lib/tomcat-api.jar <no signer certificates>)
java.net.URLClassLoader@520a3426
<no principals>
java.security.Permissions@7f1302d6 (
("java.io.FilePermission" "\C:\tomcat8.0.33\lib\tomcat-api.jar" "read")
)
scl:
jar: beginEntry META-INF/MANIFEST.MF
jar: done with meta!
jar: nothing to verify!
scl: getPermissions ProtectionDomain
(file:/C:/tomcat8.0.33/lib/tomcat-jni.jar <no signer certificates>)
java.net.URLClassLoader@520a3426
<no principals>
java.security.Permissions@6973bf95 (
("java.io.FilePermission" "\C:\tomcat8.0.33\lib\tomcat-jni.jar" "read")
)
scl:
jar: beginEntry META-INF/MANIFEST.MF
jar: done with meta!
jar: nothing to verify!
scl: getPermissions ProtectionDomain (file:/C:/poc/lib/connect.jar <no signer
certificates>)
sun.misc.Launcher$AppClassLoader@18b4aac2
<no principals>
java.security.Permissions@4445629 (
("java.lang.RuntimePermission" "exitVM")
("java.io.FilePermission" "\C:\poc\lib\connect.jar" "read")
)
Many thanks in advance.
-----Original Message-----
From: Sanka, Ambica [mailto:[email protected]]
Sent: 25 May 2016 17:52
To: Tomcat Users List
Subject: RE: tomcat8.0.33 classpath/classloader issues
You can put in catalina.properties. There is entry with common.loader in
catalina.properties under conf folder. Please see below
# Note: Values are enclosed in double quotes ("...") in case either the
# ${catalina.base} path or the ${catalina.home} path contains a comma.
common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/db2/*.jar","${catalina.home}/mq/*.jar","${catalina.home}/wasejb/*.jar","${catalina.home}/conf","${catalina.home}/properties"
Hope this helps.
Ambica.
-----Original Message-----
From: Venkata Reddy P [mailto:[email protected]]
Sent: Wednesday, May 25, 2016 5:43 AM
To: Tomcat Users List <[email protected]<mailto:[email protected]>>
Subject: RE: tomcat8.0.33 classpath/classloader issues
Many thanks Mark. I will give a retry it.
Is there a way to set all jars in folder (c:\poc\lib) to classpath on startup?
-----Original Message-----
From: Mark Thomas [mailto:[email protected]]
Sent: Wednesday, May 25, 2016 2:25 PM
To: Tomcat Users List
Subject: Re: tomcat8.0.33 classpath/classloader issues
On 25/05/2016 06:14, Venkata Reddy P wrote:
> Can anyone please help me on this?
Don't mess with the classpath. You should (almost) never need to do that.
Put shared JARs in Tomcat's lib directory.
Mark
>
> From: Venkata Reddy P
> Sent: 24 May 2016 14:44
> To: Tomcat Users List
> Subject: tomcat8.0.33 classpath/classloader issues
>
> Hi,
>
> Currently I am migrating my existing tomcat6.0.x to tomcat8.0.33 version.
>
>
> 1) I have deployed four web applications inside webapps folder, all
> these 4 web applications use the few common jars which I was (in tomcat6.0.x)
> setting as classpath variable in setclasspath.bat as below
> rem Adding classpath to existing path.
> set CLASSPATH=%CLASSPATH%;%PROJECT_CP%
>
> %PROJECT_CP% is set by the list of project jars. This way of
> setting classpath is not working in tomcat8.0.33. Is it still valid way of
> setting the classpath in tomcat8.0.x?
>
>
> 2) Some unknown reason when I start tomcat8.0.x server by running
> <catalina_home>\bin\startup.bat,
>
> Its unable to load the default tomcat jars from <catalina_home>\lib\ folder
>
> Do we have any limitation in tomcat8.0.33 version?
>
>
>
> In both 1) and 2) cases if I have copy all the required jars to primary roo
> class loader <jre8>\ext\lib folder, then it is loading all the jars as
> expected. The way of loading through the jre folder is not good practice in
> my project to separate the jars.
>
>
>
> Could you please help why default tomcat jars not loading and classpath is
> not working in tomcat8.0.33 version?
>
> Many Thanks in advance.
>
---------------------------------------------------------------------
To unsubscribe, e-mail:
[email protected]<mailto:[email protected]>
For additional commands, e-mail:
[email protected]<mailto:[email protected]>
---------------------------------------------------------------------
To unsubscribe, e-mail:
[email protected]<mailto:[email protected]>
For additional commands, e-mail:
[email protected]<mailto:[email protected]>
---------------------------------------------------------------------
To unsubscribe, e-mail:
[email protected]<mailto:[email protected]>
For additional commands, e-mail:
[email protected]<mailto:[email protected]>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]