When using Main.  This is in the localhost.log
----------------------------------------------
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.ClassCastException: com.sun.tools.javac.Main
        at
org.apache.jasper.JspCompilationContext.createCompiler(JspCompilationContext
.java:238)
        at
org.apache.jasper.JspCompilationContext.createCompiler(JspCompilationContext
.java:214)
        at
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:5
61)

When using main.JavaCompiler.  This is in catalina.out
------------------------------------------------------
WARNING: No Java compiler available
java.lang.InstantiationException: com.sun.tools.javac.main.JavaCompiler

When using main.Main .  This is in catalina.out
------------------------------------------------------
WARNING: No Java compiler available
java.lang.InstantiationException: com.sun.tools.javac.main.Main 


Looking at the source, the Compiler needs to be a:
org.apache.jasper.compiler.Compiler, which, clearly, javac is not.

So maybe I need to use the AntCompiler (I have no idea what this is
currently), and have it call javac.  

This is all looking like it may not be worth it.  Still, I may investigate
it further this weekend.


 
-----Original Message-----
From: Caldarale, Charles R [mailto:[EMAIL PROTECTED] 
Sent: Friday, June 08, 2007 4:23 PM
To: Tomcat Users List
Subject: RE: Using Javac instead of JDT to compile JSPs

> From: Mark Claassen [mailto:[EMAIL PROTECTED]
> Subject: RE: Using Javac instead of JDT to compile JSPs
> 
> <param-name>compiler</param-name>

Looking at the code in org.apache.jasper.EmbeddedServletOptions, it appears
the parameter name should be "compilerClassName" rather than "compiler".  If
compilerClassName is null, the following somewhat odd code in
org.apache.jasper.JspCompilationContext is executed:

if (options.getCompiler() == null) {
    jspCompiler =
createCompiler("org.apache.jasper.compiler.JDTCompiler");
    if (jspCompiler == null) {
        jspCompiler =
createCompiler("org.apache.jasper.compiler.AntCompiler");
    }
} else {
    jspCompiler =
createCompiler("org.apache.jasper.compiler.AntCompiler");
    if (jspCompiler == null) {
        jspCompiler =
createCompiler("org.apache.jasper.compiler.JDTCompiler");
    }
}

It appears the value of "compiler" is ignored, which explains why the JDT
compiler keeps getting used.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
MATERIAL and is thus for use only by the intended recipient. If you received
this in error, please contact the sender and delete the e-mail and its
attachments from all computers.

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe,
e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to