I've got a web application that runs succesfully on Win/Tomcat 5.0 and on RH/resin 2.x. I am pretty sure my problem is with the container configuration. I need to run several versions of the app and I'd like to do this using several different Tomcat instances, with different $CATALINA_BASE directories. (There is an Apache front-end but that isn't relevant yet.)

I cannot seem to get the app to start. I have a directory set up as the CATALINA_BASE with the following content (I've left out a couple unrelated dirs for simplicity):

base_dir
  apps
    myWebAppBaseDir (which contains WEB-INF and so forth)
  conf
    Catalina
      localhost
        ROOT.xml
    context.xml (the default that comes with Tomcat)
    server.xml
    web.xml (the default that comes with Tomcat)
    (other default files: catalina.properties, tomcat-users.xml, etc)
  logs
  temp
  webapps (empty)
  work


I believe the necessary configuration is only in the server.xml and the ROOT.xml files, and the rest are OK to use the defaults. I've pasted the server.xml and ROOT.xml files below for reference. As you'll notice, I am attempting to run the app from a directory structure, not from a WAR file, and it is intended to run as the root application with no context path.

Using the configuration I've currently got (below), I can start Tomcat and no errors show up in the logs, although the startup process my app normally goes through does not seem to occur (that is, the messages from it don't show up). If I try to hit a page on the server, I get an exception (below) that I can't find anywhere on Google nor in this list's archives.

I tried configuring the app by placing the content of ROOT.xml into the <host> element of server.xml, as is recommended AGAINST in the Tomcat docs. This produced the same exception.

In all cases I start Tomcat using a script I wrote that sets JAVA_HOME and CATALINA_BASE and then calls CATALINA_HOME/bin/catalina.sh (full script below).

Any ideas on what to do, or pointers to further research, are much appreciated!

Thanks,
Rachel McConnell


Exception stack trace:
-------------------------------------------------
java.lang.UnsupportedClassVersionError: org/apache/jsp/setup/index_jsp (Unsupported major.minor version 49.0)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:156) at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:69) at org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:548) at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:136) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:307) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at com.enginegreen.denali.interceptor.HibernateFilter.doFilter(HibernateFilter.java:39) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at com.enginegreen.denali.action.DenaliFilter.doFilter(DenaliFilter.java:33) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at com.enginegreen.denali.setup.servlet.SetupFilter.doFilter(SetupFilter.java:58) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
        at java.lang.Thread.run(Thread.java:534)


server.xml (in conf/)
----------------------------------
<Server port="7005" shutdown="SHUTDOWN9">

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

    <!-- Define an AJP Connector on port 6804 -->
    <Connector port="6804" protocol="AJP/1.3"
               enableLookups="false"
               connectionTimeout="20000"
               maxThreads="150"
               minSpareThreads="25"
               maxSpareThreads="75"
    />

    <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 to
         get this working before hooking up Apache -->
    <Connector port="8080" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25"
               maxSpareThreads="75" acceptCount="100"
               enableLookups="false" redirectPort="8443"
               connectionTimeout="20000"
               disableUploadTimeout="true" />

    <!-- Define the top level container in our container hierarchy -->
    <Engine name="Catalina" defaultHost="localhost">

      <Host name="localhost" appBase="webapps"
            unpackWARs="false"
            autoDeploy="false"
      >

      </Host>
    </Engine>
  </Service>
</Server>


ROOT.xml (in conf/Catalina/localhost/)
------------------------------------------------------
<Context path=""
         docBase="/full/path/to/CATALINA_BASE/apps/myWebAppBaseDir"
         unpackWAR="false">

  <Resource type="javax.sql.DataSource" auth="Container"
            name="jdbc/jdbcname"/>
  <ResourceParams name="jdbc/jdbcname">
    <parameter>
      <name>factory</name>
      <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
    <parameter>
      <name>username</name>
      <value>dbusername</value>
    </parameter>
    <parameter>
      <name>password</name>
        <value>dbpassword</value>
    </parameter>
    <parameter>
      <name>url</name>
      <value>jdbc:postgresql://localhost:5432/dbname</value>
    </parameter>
    <parameter>
      <name>driverClassName</name>
      <value>org.postgresql.Driver</value>
    </parameter>
    <parameter>
      <name>maxWait</name>
      <value>-1</value>
    </parameter>
    <parameter>
      <name>maxActive</name>
      <value>20</value>
    </parameter>
    <parameter>
      <name>maxIdle</name>
      <value>10</value>
    </parameter>
  </ResourceParams>

</Context>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to