Tomcat 9 Classloader

This is a very high level question and there are many internals and complexities but if we are to focus on what Tomcat is : A Servlet Container then it works as follows : Tomcat mainly has a Classloader Hierarchy and a Thread Pool. service ClassLoader加载LoggerInit时. jar area for Java ARchive files which contain servlets, beans, and other utility classes useful to the web application. Like many server applications, Tomcat installs a variety of class loaders (that is, classes that implement java. Of course this has nothing to do with Tomcat per se, any java app using Enum. Start your Ode v1. ClassLoader) to allow different portions of the container, and the web applications running on the container, to have access to different repositories of available classes and resources. x and later. WebappProperties interface (Tomcat's web application class loader does) then property replacement is also performed for ${classloader. I accidentally leave an app jar into the shared class loader, so, that jar was trying to access a class on my webapp1 class loader but he can't invoke every class loader since he only knows his father (they can't look down). 2 should be fine. The web application folder is located at /usr/share/tomcat/webapps. Start Tomcat; This log4j configuration sets up a file called tomcat. ThreadLocal Memory Leak in Java web application - Tomcat ThreadLocal variables are infamous for creating memory leaks. xml and jboss-web. WebappLoader). 8 with Jetty or Tomcat 4, which leads me to believe it has to do with class loading in the embedded Tomcat 5 service. NoClassDefFoundError: com/sun/istack/logging/Logger exception. Maybe they're going to deprecate it? We do use shared loader extensively to override existing classes that came with the vanilla version of our software. A recording of the webinar and a copy of the slides can be obtained from the webinars section of the SpringSource website. This tutorial will show you how to create a simple Java web application using embedded Tomcat. Also, it may be that the message comes from commons-logging provided with tomcat, which may not be the same as the one in tomcat 5. x Server in the Server View by right clicking on it > Start or press the start icon. when i deploy it to tomcat,the console print: we can see that it's normal on tomcat,but it seem to be off normal on wildfly. But I'm not sure if you will still end up with the JDK version since the one in WEB-INF is not "endorsed" to override it. Later I noted that in the installation window it has mentioned. To find out the Tomcat version, find this file - version. ClassLoader cl = Thread. webappName}, ${classloader. However, due to what seems to be a bug in Tomcat's AdaptiveClassLoader, if you are in a tomcat context and the resources that you are looking for are in the context also, then getResources returns nothing, but a call to getResource will return a URL. It is the class responsible for finding and loading class files at run time. Overview: Like many server applications, Tomcat 6 installs a variety of class loaders (that is, classes that implement java. getResource("baz"); This technique has a particular advantage: it will load the resource from within /WEB-INF/classes or /WEB-INF/lib, even if the class you are calling it from is loaded from a shared class loader (like the "lib" directory in Tomcat). POJO Web Services using Apache Axis2. Current Description. I accidentally leave an app jar into the shared class loader, so, that jar was trying to access a class on my webapp1 class loader but he can't invoke every class loader since he only knows his father (they can't look down). "D:\") (or even the drive root) for some. log in your Tomcat logs folder with a maximum file size of 10MB and up to 10 backups. Mark Thomas When you start using reflection to access class loader internals (or any other internals) that is usually a sign that the solution is going to be fragile. Like many server applications, Tomcat installs a variety of class loaders (that is, classes that implement java. so you might do that too, but if not, just replace /Tomcat below with whatever your path to Tomcat is. 1) Tomcat is a Java Servlet container and web server from the Jakarta project of the Apache software foundation. FileDirContext available in Tomcat 7 (not Tomcat 8) Attempting to deploy a web application to Tomcat 8 within Eclipse Mars: Jul 16, 2015 1:15:07 PM org. (markt) Make all loggers associated with Tomcat provided Filters non-static to ensure that log messages are not lost when a web application is reloaded. The fix for Bug#65909 introduced the ability to stop daemon threads started by the Connector/J driver but it also cleared references from daemon threads to the parent classloader. M10 for the 9. Tomcat example source code file (class-loader-howto. The classes in this directory are used by the application class loader to load classes from. A curated repository of vetted computer software exploits and exploitable vulnerabilities. From this article you will be able to learn what is new with Tomcat 9. Every time when I first run the servlet to generate a pdf file after rebooting tomcat or leaving it for a couple of days, it gives me Null pointer exception (see below). 27 8180 tcp http open Apache Tomcat/Coyote JSP engine 1. Tomcat is the most popular opensource Java application server. Not sure where to turn. See Tomcat Systemd. This way only one is visible to any tree of the classloader. If using a class loader that implements the org. You can argue whether Java's dynamic class loading features are really part of Java Reflection, or a. For some time Tomcat has had some means of protection against memory leaks when stopping or redeploying applications. In our QA environment, I'm trying to start the Informatica service, and it says: "The. 1 JSP stands for JavaServer Pages. 32 everything works fine, but with Tomcat 8. Web Applications. It sounds like you want: To use Log4j for tomcat logging. Prior to version 8, Apache Tomcat loaded the jars of the WEB-INF lib directory in alphabetical order. ClassLoader cl = Thread. 1-b02, mixed mode) I suppose that the tcnative-1. I have a working Tomcat 8 environment under Eclipse 4. A servlet is loaded on startup of the webapp that, as part if its init method, causes a data set specific to that webapp instance to be loaded into the C++ data structures. jarを展開してフォルダごと比較してみてやっと気づきました。原因、それはTomcat7とTomcat8ではパッケージ名が異なっていること。. [DevLoader] Starting DevLoader modified by e. 28 has run into some problems. Preface In the session management of nginx + Tomcat above, it briefly introduces how to use redis to manage sessions. 0_26" Java(TM) SE Runtime Environment (build 1. Choose Classpath tab > Add External JARs > [your TOMCAT_DIR]\bin\tomcat-juli. The class ClassLoader is an abstract class. Start your Ode v1. It also provides work-arounds for known issues that can result in locked JAR files. manager property. Web Container; Tomcat 9; Tomcat 8. 03/04/2014 1 APACHE TOMCAT Rachid NID SAID rachid. But selecting the jre path that is meant to be for 64 bit machine, helps in getting the tomcat running but I get the above exception. 27 Tomcat 7. Given the binary name of a class, a class loader should attempt to locate or generate data that constitutes a definition for the class. The Tomcat home directory is located at /usr/share/tomcat. As an example, using Tomcat add the jsde83_sdk. ClassLoader) to allow different portions of the container, and the web applications running on the container, to have access to different repositories of available classes and resources. Next, the web. (9 replies) I'm having some trouble getting classes loaded by a new classloader to be able to see classes which should have been loaded automatically from WEB-INF/lib. ThreadLocal Memory Leak in Java web application - Tomcat ThreadLocal variables are infamous for creating memory leaks. BeanSpy - JMX Store Configuration Monitor Alert (Target=Monitored Tomcat web application server configuration) System Center - Operations Manager > < ClassLoader >. 26? I am able to get this to work with Tomcat 5. 5; Tomcat 8; Tomcat 7; Tomcat Class Loader; Tomcat Logging; Tomcat SSL; Tomcat Container; PKI. If you load a java. Hi Everyone, It seems that my Tomcat 6. WARNING - Failed to scan jar from classloader hierarchy. Overview: Like many server applications, Tomcat installs a variety of class loaders (that is, classes that implement java. ClassLoader) to allow different portions of the container, and the web applications running on the container, to have access to different repositories of available classes and resources. All such classes are visible to both Tomcat internal classes, and to web applications. Im using apache-tomcat-5. war) I get the following errors. 438 INFO org. Overview: Like many server applications, Tomcat 6 installs a variety of class loaders (that is, classes that implement java. Strange, Tomcat 5. home} path contains a comma. Http11Protocol was removed in Tomcat 8. 25, the manager webapp has a new "Find Leaks" button. A recording of the webinar and a copy of the slides can be obtained from the webinars section of the SpringSource website. The Tomcat project has brought a change in the way they handle RequestDispatcher which has caused regressions in XWiki for some versions of Tomcat. "D:\Tomcat"), the user also must have read access access to its parent directory (e. It sounds like you want: To use Log4j for tomcat logging. Overview: Like many server applications, Tomcat 4 installs a variety of class loaders (that is, classes that implement java. If the JAR file is in the webapp's WEB-INF/lib directory, then the webapp's ClassLoader will be the default for the classes loaded therein and the leak will likely occur. Class Loader HOW-TO Overview. Note:The JSR 160 JMX-Adaptor opens a second data channel on a random port. FileDirContext available in Tomcat 7 (not Tomcat 8) Attempting to deploy a web application to Tomcat 8 within Eclipse Mars: Jul 16, 2015 1:15:07 PM org. ThreadLocal Memory Leak in Java web application - Tomcat ThreadLocal variables are infamous for creating memory leaks. Workaround we disable this feature on Tomcat by adding the following line in the file server. logging confgiuration. serviceName} which are replaced with the web application name, the host name and the service name. Weird stuff there. INFO level is specified which will result in a similar level of detail to the standard java. 18/bin/apache-tomcat-8. Diagnosing and Fixing Memory Leaks in Web Applications: Tips from the Front Line •The class loader that loaded it •Pins Tomcat’s class loader in memory. currentThread(). I am using Spring Boot 1. Overview: Like many server applications, Tomcat 5 installs a variety of class loaders (that is, classes that implement java. For example :. a guest Apr The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java. Learn Apache Tomcat, a pure Java open-source web server that implements the Java Servlet, JavaServer Pages, and Expression Language specifications. Example-7 Suppose you are using Tomcat and wanted to use log4j in your web-application. xlsx file? I think that i forget some think in my code. Download tomcatPluginVxxx. Maven and Java 9. HostConfig - Deployment of web application directory C:\Program Files\Apache Software Foundation\Tomcat 9. Add the following parameters to setenv. BeanSpy - JMX Store Configuration Monitor Alert (Target=Monitored Tomcat web application server configuration) System Center - Operations Manager > < ClassLoader >. A recording of the webinar and a copy of the slides can be obtained from the webinars section of the SpringSource website. 7 to sun jre 1. WebappProperties interface (Tomcat's web application class loader does) then property replacement is also performed for ${classloader. jar and jboss. Get the logger associated with the specified name inside the classloader local configuration. sh for *nix or version. References. The fix for Bug#65909 introduced the ability to stop daemon threads started by the Connector/J driver but it also cleared references from daemon threads to the parent classloader. Defaults to true. jar also in the Java Classpath ? Reply Delete. Start Tomcat; This log4j configuration sets up a file called tomcat. ClassLoader Leak Patterns 1. 0), the name of the JVM vendor and the version of the JVM. The fix for Bug#65909 introduced the ability to stop daemon threads started by the Connector/J driver but it also cleared references from daemon threads to the parent classloader. So making Eclipse Che compliant with Java 9 required a lot of updates. getContextClassLoader(); URL = cl. GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. Like many server applications, Tomcat installs a variety of class loaders (that is, classes that implement java. There is some info on deploying an ICEfaces application to Weblogic in our Knowledge Base This doesn't specifically reference 10. (9 replies) I'm having some trouble getting classes loaded by a new classloader to be able to see classes which should have been loaded automatically from WEB-INF/lib. If you use either of Tomcat's connection pools, you should be required to put Connector/J into Tomcat's lib/ directory and therefore Alexander's patch is appropriate. getLogger, a new logger with the specified name will be instantiated and added using addLogger. Thanks for the response Alex. The class ClassLoader is an abstract class. 28 has run into some problems. 0), the name of the JVM vendor and the version of the JVM. ClassLoader) to allow different portions of the container, and the web applications running on the container, to have access to different repositories of available classes and resources. 27 Tomcat 7. My JDK has the following version: java version "1. NoClassDefFoundError: com/sun/istack/logging/Logger exception. Activate and configure DevLoader for a project in project properties->Tomcat->DevLoader classpath. Apparently the class loading code in java. BeanSpy - JMX Store Configuration Monitor Alert (Target=Monitored Tomcat web application server configuration) System Center - Operations Manager > < ClassLoader >. A curated repository of vetted computer software exploits and exploitable vulnerabilities. We need to instantiate and load our MBean at Tomcat's start. ThreadLocal Memory Leak in Java web application - Tomcat ThreadLocal variables are infamous for creating memory leaks. As a result the thread has the Webapp class loader as its thread context class loader. 65, a new parallel capable classloader has been available, ParallelWebappClassLoader. It provides Tomcat with the ability to log hierarchically across various log levels without the need to rely on a particular logging implementation. This listener must only be nested within Server elements. Just a reminder of what the nmap scan returned about Apache Tomcat and Coyote: 10. Search Unsupported major. For example :. ClassLoader. Build your ContextListener: According to the Tomcat's documentation, a Listener is a a component that performs actions when specific events occur, usually Tomcat starting or Tomcat stopping. jar under Tomcat5. There was a targeted fix that handled a similar case that I have converted to a more general fix. Yes, if it was using the thread context classloader, like is done nearly 100% of the time elsewhere, it would be useless. Tomcat Service. Understanding the Tomcat classpath - Common problems and how to fix them A common question that pops up on lots of Apache Tomcat user forums is how to configure Tomcat's classpath to include this or that JAR file that is needed by a web application. valueOf would have this leak, of course only in web app reloads does it arise. Your problem here, is that a class loaded in one classloader is not compatible with a class loaded in another. (6 replies) Folks, I have run into some problems with class loading in my servlet… I would like to debug the loading of ALL classes by tomcat. 0 Content-Type: multipart/related. Contribute to lwr/tomcat8-custom-loader development by creating an account on GitHub. 6 does not properly constrain the class loader that accesses the XML parser used with an XSLT stylesheet, which allows remote attackers to (1) read arbitrary files via a crafted web application that provides an XML external entity declaration in conjunction with an entity. Im using apache-tomcat-5. sh for *nix or version. currentThread(). 0_26-b03) Java HotSpot(TM) 64-Bit Server VM (build 20. Connector org. > >> Tomcat's "Which Version" page claims that Tomcat X works with Java "Y >> and later", which is not strictly true at this point because Tomcat's >> startup scripts will cause Java 9 to fail[2] due to the removal of the >> endorsed overrides mechanism. All such archive files are used by the web application class loader to load classes from. ClassLoader) to allow different portions of the container, and the web applications running on the container, to have access to different repositories of available classes and resources. 26? I am able to get this to work with Tomcat 5. This listener must only be nested within Server elements. Different Classloader implementations already exist in Java2. Stack Exchange network consists of 175 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers. The Tomcat home directory is located at /usr/share/tomcat. GitHub Gist: instantly share code, notes, and snippets. Application class loader : The application class loader is typically used to define classes on the application class path. This implementation is called "JULI". jar area for Java ARchive files which contain servlets, beans, and other utility classes useful to the web application. My tomcat does not start the services. 3) Web servers can provide dynamic content based on the requests sent by the user. If using a class loader that implements the org. The work-around is to initialise these singletons when this listener starts as Tomcat's common class loader is the context class loader at that time. hello there, i cant found tomcat7w. ClassLoader cl = Thread. ClassLoader) to allow different portions of the container, and the web applications running on the container, to have access to different repositories of available classes and resources. Diagnosing and Fixing Memory Leaks in Web Applications: Tips from the Front Line •The class loader that loaded it •Pins Tomcat's class loader in memory. x, fix has been backported to 6. serviceName} which are replaced with the web application name, the host name and the service name. I think that is the tomcat classloader's first port of call so it must load from there. 5; Tomcat 8; Tomcat 7; Tomcat Class Loader; Tomcat Logging; Tomcat SSL; Tomcat Container; PKI. I have a working Tomcat 8 environment under Eclipse 4. Starting with tomcat 6. This tutorial will show you how to create a simple Java web application using embedded Tomcat. NoClassDefFoundError: com/sun/istack/logging/Logger exception. This is done to avoid issues of log mix-up where multiple web applications (each with their own class loader) create Loggers with the same name. My tomcat does not start the services. I am using Spring Boot 1. I have found that after deploying and removing my application using tomcat manager a few times, the JVM throws an out of memory exception. We need to instantiate and load our MBean at Tomcat's start. The Tomcat home directory is located at /usr/share/tomcat. References. Im using apache-tomcat-5. so you might do that too, but if not, just replace /Tomcat below with whatever your path to Tomcat is. It provides Tomcat with the ability to log hierarchically across various log levels without the need to rely on a particular logging implementation. The default is true. The default classloader used by Tomcat is not parallel capable. Mark Thomas When you start using reflection to access class loader internals (or any other internals) that is usually a sign that the solution is going to be fragile. This paper first introduces how the default manager manages the session life cycle, and then analyzes redis's centralized management session on this basis. But selecting the jre path that is meant to be for 64 bit machine, helps in getting the tomcat running but I get the above exception. The Tomcat project has brought a change in the way they handle RequestDispatcher which has caused regressions in XWiki for some versions of Tomcat. Note: The JSR 160 JMX-Adaptor opens a second data channel on a random port. Javassist approach to create AOP is powerfull and very expresible but class loading issues makes it almost useless. It has been around for a long time and - at the time of writing this post - has reached version 7. The class ClassLoader is an abstract class. JAXWS in tomcat 7 java. Thus you should not use the following Tomcat versions: >= 9. 1 that needs to make JNI calls in order to access data and methods in legacy C++ code. Application class loader : The application class loader is typically used to define classes on the application class path. Tomcat 9 Catalina dev NEW --- Provide a way to load SecurityProviders into the system classloader compatible with Java 9+ 2019-03-29 63049: Tomcat 9 Catalina dev NEW --- Add support in system properties override from command line : 2019-01-09 63237: Tomcat 9. hostName} and ${classloader. Yes, if it was using the thread context classloader, like is done nearly 100% of the time elsewhere, it would be useless. Note Tomcat 7 will warn you if you do this and will also provide a (highly dangerous - use at your own risk) option to terminate the threads. 4 [DevLoader] Error: Unable to install WebappClassLoader, received ClassLoader was null ! Regards, Georg. All such archive files are used by the web application class loader to load classes from. A servlet is loaded on startup of the webapp that, as part if its init method, causes a data set specific to that webapp instance to be loaded into the C++ data structures. The fix for Bug#65909 introduced the ability to stop daemon threads started by the Connector/J driver but it also cleared references from daemon threads to the parent classloader. x and later. 2 should be fine. However, it is expected that applications do this for themselves via a ServletContextListener. The getCompileClasspath method is a utility method available for web containers to generate a classpath that walks up the class loader chain starting at the given loader and queries each class loader for the URLs it serves to build a complete classpath of URL strings. Tomcat jdbc pool is a Tomcat module, it depends on Tomcat JULI, a simplified logging framework used in Tomcat. There are loads of bugs in 3rd party libraries triggering it – JDBC drivers, threadpool implementations, job schedulers, you name it. JULI is enabled by default in Tomcat 5. I might write a different startup script for tomcat to use its own classpath as my classpath is getting just a little long now!. That is a problem when you have a local firewall installed. In this case, the resources refactoring in Tomcat 8 removed a whole bunch of code from WebappClassLoader, including the addURL implementation. But I'm not sure if you will still end up with the JDK version since the one in WEB-INF is not "endorsed" to override it. - /WEB-INF/lib/*. Ali-Tomcat: Pandora QOS的source命令例子: 1) location代表该class所在的jar包位置; 2) classLoader代表真正加载该class的ClassLoader; 3) sourceLoader代表当前加载class所使用的ClassLoader; 4) 上例中,classLoader和sourceLoader不相同,则表示 pandora. minor version 52. ClassLoader) to allow different portions of the container, and the web applications running on the container, to have access to different repositories of available classes and resources. This is needed by some JSP compiler implementations (Jasper for one) that. This implementation is called "JULI". Hi, Im am trying to embed Tomcat into our application, but without having to specify all the Tomcat libraries and in the classpath. "Normal" classes class can be modified by overriding the modifyClass() method which is called just before defineClass(). Current Description. It has been around for a long time and – at the time of writing this post – has reached version 7. I used example code from ASM site to reload dynamicaly changed class by classloader that loads from bytecode and in Eclipse it works I got aspectized code, but using this in Tomcat fails. GitHub Gist: instantly share code, notes, and snippets. 65, a new parallel capable classloader has been available, ParallelWebappClassLoader. JAXWS in tomcat 7 java. 8 with Jetty or Tomcat 4, which leads me to believe it has to do with class loading in the embedded Tomcat 5 service. Connector org. manager property. Then in Terminal run these 4 lines, supplying your admin password when prompted. FlexDeploy is built using ADF Essentials 12. A DESCRIPTION OF THE PROBLEM : Apache Tomcat provides a custom LogManager that is class loader aware. 053 INFO org. Apache Tomcat/9. Choose Classpath tab > Add External JARs > [your TOMCAT_DIR]\bin\tomcat-juli. It is possible to load and reload classes at runtime in Java, though it is not as straightforward as one might have hoped. This way only one is visible to any tree of the classloader. This header can provide useful information to both legitimate clients and attackers. ClassLoader) to allow different portions of the container, and the web applications running on the container, to have access to different repositories of available classes and resources. 42 how do i add tomcat-juli. And I found that its throwing some errors. OP, I think you have deployment issues. So it may be that the mixup problem was already there but unnoticed in tomcat 5. 0 doesn't; neither has v7. ClassLoader cl = Thread. A servlet is loaded on startup of the webapp that, as part if its init method, causes a data set specific to that webapp instance to be loaded into the C++ data structures. urlCacheProtection. 438 INFO org. base} path or the ${catalina. sh file is normally located in the Tomcat bin folder. Most often the java. So it may be that the mixup problem was already there but unnoticed in tomcat 5. x or Use Tomcat installation (takes control of Tomcat installation) is selected in WTP 2. 7 to sun jre 1. getLogger, a new logger with the specified name will be instantiated and added using addLogger. The virtual machine's built-in class loader, called the bootstrap class loader, does not itself have a parent but may serve as the parent of a ClassLoader instance. ClassLoader) to allow different portions of the container, and the web applications running on the container, to have access to different repositories of available classes and resources. The Tomcat home directory is located at /usr/share/tomcat. Ali-Tomcat: Pandora QOS的source命令例子: 1) location代表该class所在的jar包位置; 2) classLoader代表真正加载该class的ClassLoader; 3) sourceLoader代表当前加载class所使用的ClassLoader; 4) 上例中,classLoader和sourceLoader不相同,则表示 pandora. Overview: Like many server applications, Tomcat 5 installs a variety of class loaders (that is, classes that implement java. Using the Seam JPA example I run ant tomcat55 and everything works fine, but when I run ant jboss-embedded I get the above errors. And I found that its throwing some errors. exe to edit on my tomcat 7. [email protected] com) Author Wrox Press 20 Oct 2005 The Apache Tomcat application server is no longer the exclusive domain of advanced Web system developers. Weird stuff there. Activate and configure DevLoader for a project in project properties->Tomcat->DevLoader classpath. The custom LogManager also permits multiple instances of the same Handler class to be created. 26? I am able to get this to work with Tomcat 5. Weblogic already contains the jsf-libs, so you might want to check out the packaging. It also provides work-arounds for known issues that can result in locked JAR files. 5; Environment. HostConfig - Deployment of web application directory C:\Program Files\Apache Software Foundation\Tomcat 9. ClassLoader) to allow different portions of the container, and the web applications running on the container, to have access to different repositories of available classes and resources. currentThread(). Also, it may be that the message comes from commons-logging provided with tomcat, which may not be the same as the one in tomcat 5. - No naming context bound to this class loader - There are No resources that can be added or removed from the server - How can I add my application to Tomcat in Eclipse? - What needs to be done to add a project to a Server in Eclipse ? - There are no projects that can be added or removed from the server. 9 IDE 2018‑09 and am trying to add a Tomcat 9 server to Eclipse for testing but upon Tomcat startup I am getting the following No Class Found e. ThreadLocal Memory Leak in Java web application - Tomcat ThreadLocal variables are infamous for creating memory leaks. Web Applications. Pretty stumped on this one. gz # tar xvzf apache-tomcat-8. Thus you should not use the following Tomcat versions: >= 9. This listener must only be nested within Server elements. The default is true. xml) This example Tomcat source code file (class-loader-howto. 2 should be fine. 7 to sun jre 1. 28 has run into some problems. Using the Seam JPA example I run ant tomcat55 and everything works fine, but when I run ant jboss-embedded I get the above errors. 27 Tomcat 7. A few weeks ago Filip Hanik and I gave the second in a series of webinars on Optimising and Tuning Apache Tomcat. This is done to avoid issues of log mix-up where multiple web applications (each with their own class loader) create Loggers with the same name. A classloader for Apache Tomcat 8 which loads the jars of WEB-INF lib in alphabetical order. defineClass1 Tomcat 9 Java version required. I do have a question though: I am facing the dread PermGen OOM, but the tomcat instances are configured to not allow redeployment of the webapps. Download tomcatPluginVxxx. Tomcat has very specific rules for it's classloaders, some of them are counter intuitive.