title: How to deploy multiple applications in Tomcat, share jars and have different datasources?
body: <p>I want to deploy three Grails web applications in a Tomcat container. I am using Grails 1.3.7 and Tomcat 7.0.23. I want to put all commons jars in a tomcat/shared/lib directory. Why? I want to have smaller war files and reduce the amount of memory required in PermGen. </p>
  
  <p>I configure the next line in <em>conf/catalina.properites</em> </p>
  
  <pre><code>shared.loader=${catalina.base}/shared/lib,${catalina.base}/shared/lib/*.jar
  </code></pre>
  
  <p>For all three applications, I execute </p>
  
  <pre><code>  grails war
  </code></pre>
  
  <p>I copy all the *.jars under WEB-INF/lib into $CATALINA_HOME/shared/lib</p>
  
  <p>Later I generate the war files without jars for every application</p>
  
  <pre><code>grails war --nojars
  </code></pre>
  
  <p>I put all three wars in the <em>tomcat/webapps</em> directory. The production dataSource in <em>conf/DataSource.groovy</em> looks as follows for every app.</p>
  
  <p>App A)</p>
  
  <pre><code>   production {
          dataSource {
              dbCreate = "update"
              username = "userA"
              password="password"
              url = "jdbc:mysql://localhost:3306/applicationA"
              driverClassName = "org.gjt.mm.mysql.Driver"
          }
      }
  </code></pre>
  
  <p>App B)</p>
  
  <pre><code>   production {
          dataSource {
              dbCreate = "update"
              username = "userB"
              password="password"
              url = "jdbc:mysql://localhost:3306/applicationB"
              driverClassName = "org.gjt.mm.mysql.Driver"
          }
      }
  </code></pre>
  
  <p>App C)</p>
  
  <pre><code>   production {
          dataSource {
              dbCreate = "update"
              username = "userC"
              password="password"
              url = "jdbc:mysql://localhost:3306/applicationC"
              driverClassName = "org.gjt.mm.mysql.Driver"
          }
      }
  </code></pre>
  
  <p>When I start up Tomcat the logs look like this: </p>
  
  <pre><code>Dec 11, 2011 11:28:15 PM org.apache.catalina.core.AprLifecycleListener init
  INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
  Dec 11, 2011 11:28:15 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
  WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property.
  Dec 11, 2011 11:28:15 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
  WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property.
  Dec 11, 2011 11:28:15 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
  WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property.
  Dec 11, 2011 11:28:15 PM org.apache.coyote.AbstractProtocol init
  INFO: Initializing ProtocolHandler ["http-bio-8080"]
  Dec 11, 2011 11:28:15 PM org.apache.coyote.AbstractProtocol init
  INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
  Dec 11, 2011 11:28:15 PM org.apache.catalina.startup.Catalina load
  INFO: Initialization processed in 652 ms
  Dec 11, 2011 11:28:15 PM org.apache.catalina.core.StandardService startInternal
  INFO: Starting service Catalina
  Dec 11, 2011 11:28:15 PM org.apache.catalina.core.StandardEngine startInternal
  INFO: Starting Servlet Engine: Apache Tomcat/7.0.23
  Dec 11, 2011 11:28:16 PM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring root WebApplicationContext
  Dec 11, 2011 11:28:22 PM org.apache.catalina.startup.HostConfig deployWAR
  INFO: Deploying web application archive /Applications/apache-tomcat-7.0.23/webapps/ApplicationB-0.1war
  Dec 11, 2011 11:28:22 PM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring root WebApplicationContext
  Dec 11, 2011 11:28:23 PM org.apache.catalina.startup.HostConfig deployWAR
  INFO: Deploying web application archive /Applications/apache-tomcat-7.0.23/webapps/ApplicationA-0.1war
  Dec 11, 2011 11:28:23 PM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring root WebApplicationContext
  Dec 11, 2011 11:28:24 PM org.apache.catalina.startup.HostConfig deployWAR
  INFO: Deploying web application archive /Applications/apache-tomcat-7.0.23/webapps/ApplicationC-0.1war
  Dec 11, 2011 11:28:24 PM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring root WebApplicationContext
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /Applications/apache-tomcat-7.0.23/webapps/docs
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /Applications/apache-tomcat-7.0.23/webapps/examples
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/core is already defined
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/core is already defined
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt_rt is already defined
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt is already defined
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/fmt is already defined
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/functions is already defined
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/permittedTaglibs is already defined
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/scriptfree is already defined
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/sql_rt is already defined
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/sql is already defined
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/sql is already defined
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/xml_rt is already defined
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/xml is already defined
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/xml is already defined
  Dec 11, 2011 11:28:25 PM org.apache.catalina.core.ApplicationContext log
  INFO: ContextListener: contextInitialized()
  Dec 11, 2011 11:28:25 PM org.apache.catalina.core.ApplicationContext log
  INFO: SessionListener: contextInitialized()
  Dec 11, 2011 11:28:25 PM org.apache.catalina.core.ApplicationContext log
  INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@5f24aa56')
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /Applications/apache-tomcat-7.0.23/webapps/host-manager
  Dec 11, 2011 11:28:25 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /Applications/apache-tomcat-7.0.23/webapps/manager
  Dec 11, 2011 11:28:25 PM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring root WebApplicationContext
  Dec 11, 2011 11:28:26 PM org.apache.catalina.startup.HostConfig deployWAR
  INFO: Deploying web application archive /Applications/apache-tomcat-7.0.23/webapps/ApplicationB-0.1war
  Dec 11, 2011 11:28:26 PM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring root WebApplicationContext
  Dec 11, 2011 11:28:26 PM org.apache.catalina.startup.HostConfig deployWAR
  INFO: Deploying web application archive /Applications/apache-tomcat-7.0.23/webapps/ApplicationA-0.1war
  Dec 11, 2011 11:28:26 PM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring root WebApplicationContext
  Dec 11, 2011 11:28:27 PM org.apache.catalina.startup.HostConfig deployWAR
  INFO: Deploying web application archive /Applications/apache-tomcat-7.0.23/webapps/ApplicationC-0.1war
  Dec 11, 2011 11:28:27 PM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring root WebApplicationContext
  Dec 11, 2011 11:28:27 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /Applications/apache-tomcat-7.0.23/webapps/docs
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /Applications/apache-tomcat-7.0.23/webapps/examples
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/core is already defined
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/core is already defined
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt_rt is already defined
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt is already defined
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/fmt is already defined
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/functions is already defined
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/permittedTaglibs is already defined
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/scriptfree is already defined
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/sql_rt is already defined
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/sql is already defined
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/sql is already defined
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/xml_rt is already defined
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/xml is already defined
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/xml is already defined
  Dec 11, 2011 11:28:28 PM org.apache.catalina.core.ApplicationContext log
  INFO: ContextListener: contextInitialized()
  Dec 11, 2011 11:28:28 PM org.apache.catalina.core.ApplicationContext log
  INFO: SessionListener: contextInitialized()
  Dec 11, 2011 11:28:28 PM org.apache.catalina.core.ApplicationContext log
  INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@55e610e3')
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /Applications/apache-tomcat-7.0.23/webapps/host-manager
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /Applications/apache-tomcat-7.0.23/webapps/manager
  Dec 11, 2011 11:28:28 PM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring root WebApplicationContext
  Dec 11, 2011 11:28:28 PM org.apache.catalina.startup.HostConfig deployWAR
  INFO: Deploying web application archive /Applications/apache-tomcat-7.0.23/webapps/ApplicationB-0.1war
  Dec 11, 2011 11:28:28 PM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring root WebApplicationContext
  Dec 11, 2011 11:28:29 PM org.apache.catalina.startup.HostConfig deployWAR
  INFO: Deploying web application archive /Applications/apache-tomcat-7.0.23/webapps/ApplicationA-0.1war
  Dec 11, 2011 11:28:29 PM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring root WebApplicationContext
  Dec 11, 2011 11:28:29 PM org.apache.catalina.startup.HostConfig deployWAR
  INFO: Deploying web application archive /Applications/apache-tomcat-7.0.23/webapps/ApplicationC-0.1war
  Dec 11, 2011 11:28:29 PM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring root WebApplicationContext
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /Applications/apache-tomcat-7.0.23/webapps/docs
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /Applications/apache-tomcat-7.0.23/webapps/examples
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/core is already defined
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/core is already defined
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt_rt is already defined
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt is already defined
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/fmt is already defined
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/functions is already defined
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/permittedTaglibs is already defined
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/scriptfree is already defined
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/sql_rt is already defined
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/sql is already defined
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/sql is already defined
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/xml_rt is already defined
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/xml is already defined
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/xml is already defined
  Dec 11, 2011 11:28:30 PM org.apache.catalina.core.ApplicationContext log
  INFO: ContextListener: contextInitialized()
  Dec 11, 2011 11:28:30 PM org.apache.catalina.core.ApplicationContext log
  INFO: SessionListener: contextInitialized()
  Dec 11, 2011 11:28:30 PM org.apache.catalina.core.ApplicationContext log
  INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@75ea2543')
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /Applications/apache-tomcat-7.0.23/webapps/host-manager
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /Applications/apache-tomcat-7.0.23/webapps/manager
  Dec 11, 2011 11:28:30 PM org.apache.catalina.startup.HostConfig deployWAR
  INFO: Deploying web application archive /Applications/apache-tomcat-7.0.23/webapps/ApplicationB-0.1war
  Dec 11, 2011 11:28:31 PM org.apache.catalina.startup.HostConfig deployWAR
  INFO: Deploying web application archive /Applications/apache-tomcat-7.0.23/webapps/ApplicationA-0.1war
  Dec 11, 2011 11:28:31 PM org.apache.catalina.startup.HostConfig deployWAR
  INFO: Deploying web application archive /Applications/apache-tomcat-7.0.23/webapps/ApplicationC-0.1war
  Dec 11, 2011 11:28:32 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /Applications/apache-tomcat-7.0.23/webapps/docs
  Dec 11, 2011 11:28:32 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /Applications/apache-tomcat-7.0.23/webapps/examples
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/core is already defined
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/core is already defined
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt_rt is already defined
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt is already defined
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/fmt is already defined
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/functions is already defined
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/permittedTaglibs is already defined
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/scriptfree is already defined
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/sql_rt is already defined
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/sql is already defined
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/sql is already defined
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/xml_rt is already defined
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/xml is already defined
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/xml is already defined
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /Applications/apache-tomcat-7.0.23/webapps/host-manager
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /Applications/apache-tomcat-7.0.23/webapps/manager
  Dec 11, 2011 11:28:33 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /Applications/apache-tomcat-7.0.23/webapps/ROOT
  Dec 11, 2011 11:28:34 PM org.apache.coyote.AbstractProtocol start
  INFO: Starting ProtocolHandler ["http-bio-8080"]
  Dec 11, 2011 11:28:34 PM org.apache.coyote.AbstractProtocol start
  INFO: Starting ProtocolHandler ["ajp-bio-8009"]
  Dec 11, 2011 11:28:34 PM org.apache.catalina.startup.Catalina start
  INFO: Server startup in 19073 ms
  </code></pre>
  
  <p>The applications start up and I can reach them. <strong>However, The only Application which has a working datasource connection is the last context loaded.</strong> </p>
  
  <pre><code>INFO: Deploying web application archive /Applications/apache-tomcat-7.0.23/webapps/ApplicationC-0.1war
  Dec 11, 2011 11:28:29 PM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring root WebApplicationContext
  </code></pre>
  
  <p>What can I do to solve this?</p>
  
  <h2>SOLUTION FOR 1.3.7</h2>
  
  <p>Some of the jars generated in a grais war command cannot be shared between every application. </p>
  
  <p><strong>Jars which cannot be shared</strong> and should be in  webapps/appA/WEB-INF/lib</p>
  
  <pre><code>grails-bootstrap-1.3.7.jar      
  grails-gorm-1.3.7.jar           
  grails-web-1.3.7.jar
  grails-core-1.3.7.jar           
  grails-resources-1.3.7.jar      
  spring-security-core-3.0.5.RELEASE.jar
  grails-crud-1.3.7.jar           
  grails-spring-1.3.7.jar
  </code></pre>
  
  <p><strong>Jars which can be shared</strong> and can be in tomcat/shared/lib </p>
  
  <pre><code>antlr-2.7.6.jar                     
  aopalliance-1.0.jar                 
  asm-3.3.1.jar                       
  asm-analysis-3.3.1.jar                  
  asm-tree-3.3.1.jar                  
  asm-util-3.3.1.jar                  
  aspectjrt-1.6.8.jar                 
  aspectjweaver-1.6.8.jar                 
  c3p0-0.9.1.2.jar                    
  cglib-nodep-2.1_3.jar                   
  commons-beanutils-1.8.0.jar             
  commons-codec-1.4.jar                   
  commons-collections-3.2.1.jar               
  commons-dbcp-1.3.jar                    
  commons-el-1.0.jar                  
  commons-fileupload-1.2.1.jar                
  commons-io-1.4.jar                  
  commons-lang-2.4.jar                    
  commons-lang3-3.0.1.jar                 
  commons-pool-1.5.5.jar                  
  commons-validator-1.3.1.jar             
  concurrentlinkedhashmap-lru-1.0_jdk5.jar        
  dom4j-1.6.1.jar                     
  ehcache-core-1.7.1.jar                  
  ejb3-persistence-1.0.2.GA.jar                       
  groovy-all-1.7.8.jar                    
  hibernate-annotations-3.4.0.GA.jar          
  hibernate-commons-annotations-3.1.0.GA.jar      
  hibernate-core-3.3.1.GA.jar             
  hibernate-ehcache-3.3.1.GA.jar              
  hibernate-validator-3.1.0.GA.jar            
  hsqldb-1.8.0.10.jar                 
  javassist-3.11.0.GA.jar                 
  jcl-over-slf4j-1.5.8.jar                
  jsoup-1.6.1.jar     
  jstl-1.1.2.jar  
  jta-1.1.jar 
  jul-to-slf4j-1.5.8.jar
  log4j-1.2.16.jar
  mysql-connector-java-5.1.6.jar      
  org.springframework.aop-3.0.5.RELEASE.jar
  org.springframework.asm-3.0.5.RELEASE.jar
  org.springframework.aspects-3.0.5.RELEASE.jar
  org.springframework.beans-3.0.5.RELEASE.jar
  org.springframework.context-3.0.5.RELEASE.jar
  org.springframework.context.support-3.0.5.RELEASE.jar
  org.springframework.core-3.0.5.RELEASE.jar
  org.springframework.expression-3.0.5.RELEASE.jar
  org.springframework.instrument-3.0.5.RELEASE.jar
  org.springframework.jdbc-3.0.5.RELEASE.jar
  org.springframework.jms-3.0.5.RELEASE.jar
  org.springframework.orm-3.0.5.RELEASE.jar
  org.springframework.oxm-3.0.5.RELEASE.jar
  org.springframework.transaction-3.0.5.RELEASE.jar
  org.springframework.web-3.0.5.RELEASE.jar
  org.springframework.web.servlet-3.0.5.RELEASE.jar
  oro-2.0.8.jar
  parboiled-core-1.0.2.jar
  parboiled-java-1.0.2.jar
  pegdown-1.1.0.jar
  remark-0.9.3.jar
  sitemesh-2.4.jar
  slf4j-api-1.5.8.jar
  slf4j-log4j12-1.5.8.jar
  standard-1.1.2.jar
  xmlbeans-2.3.0.jar
  xpp3_min-1.1.3.4.O.jar
  </code></pre>
  
  <h2>SOLUTION FOR 2.0.0</h2>
  
  <p>Some of the jars generated in a grais war command cannot be shared between every application. </p>
  
  <p><strong>Jars which cannot be shared</strong> and should be in  webapps/appA/WEB-INF/lib</p>
  
  <pre><code>grails-bootstrap-2.0.0.jar
  grails-core-2.0.0.jar
  grails-crud-2.0.0.jar
  grails-datastore-core-1.0.0.RELEASE.jar
  grails-datastore-gorm-1.0.0.RELEASE.jar
  grails-datastore-simple-1.0.0.RELEASE.jar
  grails-hibernate-2.0.0.jar
  grails-logging-2.0.0.jar
  grails-plugin-codecs-2.0.0.jar
  grails-plugin-controllers-2.0.0.jar
  grails-plugin-converters-2.0.0.jar
  grails-plugin-datasource-2.0.0.jar
  grails-plugin-domain-class-2.0.0.jar
  grails-plugin-filters-2.0.0.jar
  grails-plugin-gsp-2.0.0.jar
  grails-plugin-i18n-2.0.0.jar
  grails-plugin-log4j-2.0.0.jar
  grails-plugin-mimetypes-2.0.0.jar
  grails-plugin-scaffolding-2.0.0.jar
  grails-plugin-services-2.0.0.jar
  grails-plugin-servlets-2.0.0.jar
  grails-plugin-url-mappings-2.0.0.jar
  grails-plugin-validation-2.0.0.jar
  grails-resources-2.0.0.jar
  grails-spring-2.0.0.jar
  grails-web-2.0.0.jar
  </code></pre>
  
  <p><strong>Jars which can be shared</strong> and can be in tomcat/shared/lib </p>
  
  <pre><code>antlr-2.7.6.jar
  aopalliance-1.0.jar
  asm-3.1.jar
  asm-3.3.1.jar
  asm-analysis-3.3.1.jar
  asm-tree-3.3.1.jar
  asm-util-3.3.1.jar
  aspectjrt-1.6.10.jar
  aspectjweaver-1.6.10.jar
  cglib-2.2.jar
  commons-beanutils-1.8.3.jar
  commons-codec-1.5.jar
  commons-collections-3.2.1.jar
  commons-dbcp-1.4.jar
  commons-el-1.0.jar
  commons-fileupload-1.2.2.jar
  commons-io-2.1.jar
  commons-lang-2.6.jar
  commons-lang3-3.0.1.jar
  commons-logging-1.1.1.jar
  commons-pool-1.5.6.jar
  commons-validator-1.3.1.jar
  concurrentlinkedhashmap-lru-1.2_jdk5.jar
  dom4j-1.6.1.jar
  ecj-3.6.2.jar
  ehcache-core-2.4.6.jar
  fontbox-1.6.0.jar
  h2-1.2.147.jar
  hibernate-commons-annotations-3.2.0.Final.jar
  hibernate-core-3.6.7.Final.jar
  hibernate-ehcache-3.6.7.Final.jar
  hibernate-jpa-2.0-api-1.0.1.Final.jar
  hibernate-validator-4.1.0.Final.jar
  javassist-3.12.0.GA.jar
  jcl-over-slf4j-1.6.2.jar
  jsoup-1.6.1.jar
  jstl-1.1.2.jar
  jta-1.1.jar
  jul-to-slf4j-1.6.2.jar
  log4j-1.2.16.jar
  mysql-connector-java-5.1.18-bin.jar
  oro-2.0.8.jar
  parboiled-core-1.0.2.jar
  parboiled-java-1.0.2.jar
  pdfbox-1.6.0.jar
  pegdown-1.1.0.jar
  poi-3.7-20101029.jar
  poi-ooxml-3.7-20101029.jar
  poi-ooxml-schemas-3.7-20101029.jar
  remark-0.9.3.jar
  sitemesh-2.4.jar
  slf4j-api-1.6.2.jar
  spring-aop-3.1.0.RELEASE.jar
  spring-asm-3.1.0.RELEASE.jar
  spring-aspects-3.1.0.RELEASE.jar
  spring-beans-3.1.0.RELEASE.jar
  spring-context-3.1.0.RELEASE.jar
  spring-context-support-3.1.0.RELEASE.jar
  spring-core-3.1.0.RELEASE.jar
  spring-expression-3.1.0.RELEASE.jar
  spring-jdbc-3.1.0.RELEASE.jar
  spring-jms-3.1.0.RELEASE.jar
  spring-orm-3.1.0.RELEASE.jar
  spring-security-core-3.0.7.RELEASE.jar
  spring-security-web-3.0.7.RELEASE.jar
  spring-tx-3.1.0.RELEASE.jar
  spring-web-3.1.0.RELEASE.jar
  spring-webmvc-3.1.0.RELEASE.jar
  validation-api-1.0.0.GA.jar
  xmlbeans-2.3.0.jar
  xpp3_min-1.1.4c.jar
  </code></pre>