tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject Problem with embedded Tomcat and JSP compilation.
Date Thu, 08 Jan 2004 08:43:59 GMT

I wrote an application running an embedded Tomcat, based on the sample code of the onJava
site (an org.apache.catalina.startup.Embedded class with manual configuration of things usually
found in server.xml). I use Tomcat 4.1.27 and Java 1.3.1.
Tomcat starts well, but is not able to compile JSP page. It displays the following error:

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 4 in the jsp file: /index.jsp

Generated servlet error:
    [javac] Compiling 1 source file

C:\test\tomcat\work\_\localhost\_\ package javax.servlet does not exist
import javax.servlet.*;

and so on for all import statements. It looks like a classpath problem, but I set the classpath
with all the jar files in tomcat/common/lib, in tomcat/server/lib, in tomcat/common/endorsed,
bootstrap.jar, the tools.jar of java. I set it in the environment CLASSPATH variable and in
the classpath of the jar of my application. And the classpath is set, because if not, Tomcat
cannot be launched.

So I probably missed something, but what?

Below you can see the code of my class and the code of the main function:

<code of class EmbeddedTomcat>
import org.apache.catalina.Connector;
import org.apache.catalina.Context;
import org.apache.catalina.Deployer;
import org.apache.catalina.Engine;
import org.apache.catalina.Host;
import org.apache.catalina.logger.SystemOutLogger;
import org.apache.catalina.startup.Embedded;
import org.apache.catalina.Container;

public class EmbeddedTomcat
    private String path = null;
    private Embedded embedded = null;
    private Host host = null;
    public EmbeddedTomcat()
    public void setPath( String path)
        this.path = path;
    public String getPath()
        return( path);
    public void startTomcat() throws Exception
        Engine engine = null;
        Context context = null;
        System.setProperty( "catalina.home", getPath());
        System.setProperty( "catalina.base", getPath());

        embedded = new Embedded();
        embedded.setDebug( 0);
        embedded.setLogger( new SystemOutLogger());
        engine = embedded.createEngine();
        engine.setDefaultHost( "localhost");
        host = embedded.createHost( "localhost", "webapps");
        engine.addChild( host);
        context = embedded.createContext( "", "c:/test/root");
        host.addChild( context);
        embedded.addEngine( engine);
        Connector connector = embedded.createConnector( null, 8080, false);
        embedded.addConnector( connector);

    public void stopTomcat() throws Exception

<code in main function of my application>
    EmbeddedTomcat tomcat = new EmbeddedTomcat();
    tomcat.setPath( m_config.getString( "tomcat.home"));
    catch( Exception error)
        logger.fatal( "Unable to start tomcat.", error);

NetCourrier, votre bureau virtuel sur Internet : Mail, Agenda, Clubs, Toolbar...
Web/Wap :
Téléphone/Fax : 08 92 69 00 21 (0,34 € TTC/min)
Minitel: 3615 NETCOURRIER (0,16 € TTC/min)

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message