Hi,

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:

<code>
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\_\index_jsp.java:3: package javax.servlet does not 
exist
import javax.servlet.*;
^
...
</code>

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);
        
        embedded.start();
    }

    public void stopTomcat() throws Exception
    {
        embedded.stop();
    }
}
</code>

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

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


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

Reply via email to