"Chris" <> wrote in message news:<3ffcc93a$0$6771$>...
> Don't cross-post.
Sorry for the cross-posting.
>
> It's probably a javac/tools.jar problem.
>
> Tomcat/Jasper uses javac.exe, which simply calls some classes in tools.jar.
> Internally, Jasper uses the Ant <javac> task to invoke javac. If fork=true,
> which it is by default, then it actually spins off another process, calls
> javac.exe, and gets to tools.jar that way. If fork=false, then it can access
> the classes directly.
>
> Two solutions: add the directory that contains javac to your path, or set
> fork=false in one of the xml config files (server.xml?).
fork=false was already set in the web.xml file of the tomcat/conf
directory, for the servlet "jsp". Adding the directory of javac in the
path changes nothing

Setting the fork to true only changes the display of the message, but
the error is the same.
>
>
> "bcassand" <> wrote in message
> news: om...
> > 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>