Why aren't you configuring the version of the jspc-maven-plugin you are using?

--jason


On Sep 11, 2008, at 9:32 PM, Randy Eckhoff wrote:

I've been using maven2 with the org.codehaus.mojo.jspc maven plugin for quite some time. Just the other day, jsp builds suddenly stopped working with the "No java compiler available" message.

My pom looks like:
        <plugin>
            <groupId>org.codehaus.mojo.jspc</groupId>
            <artifactId>jspc-maven-plugin</artifactId>
            <executions>
                <execution>
                  <configuration>
                    <includeInProject>true</includeInProject>
                  </configuration>
                    <goals>
                         <goal>compile</goal>
                    </goals>
                </execution>
            </executions>

            <!-- Use the Tomcat 5 JSP compiler -->
            <dependencies>
                <dependency>
                    <groupId>org.codehaus.mojo.jspc</groupId>
                    <artifactId>jspc-compiler-tomcat5</artifactId>
                    <version>2.0-alpha-1</version>
                </dependency>
            </dependencies>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <webXml>${pom.basedir}/target/jspweb.xml</webXml>
            </configuration>
        </plugin>
This has been unchanged for a long time. I use tomcat5 which means it is using tomcat 5.5.15 jars. I confirmed that the jasper- compiler-5.5.15.jar and jasper-compiler-jdt-5.5.15.jar are on the classpath by doing a maven -X install. So in theory, the org.apache.jasper.JspCompilationContext createCompiler() method (yes i started digging in the tomcat source code):

        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");
            }
        }
        if (jspCompiler == null) {
throw new IllegalStateException(Localizer.getMessage("jsp.error.compiler"));
        }
should resolve the JDTCompiler and AntCompiler since the jars are on the classpath. The IllegalStateException is the exception being thrown:

java.lang.IllegalStateException: No Java compiler available
at org .apache .jasper .JspCompilationContext.createCompiler(JspCompilationContext.java:224)
        at org.apache.jasper.JspC.processFile(JspC.java:979)

I saw that 2.0-alpha-2 version came out this month so I tried that with no luck.

I am using Artifactory as my maven repo. For the common jars, it just grabs from the maven2 repo. I deleted everything out of my artifactory repo cache to force it to re-retrieve what the build needs. I also deleted my local maven repo directory. All resulted in failure. I also bounced artifactory which didn't work.

I triple checked that the jasper compiler jars (both of them) are on my machine and they are listed in the classpath for the build. Usually this type of error means something is missing from the classpath. If the jasper compiler jars are on the classpath, what else would be missing all of a sudden. It's been working for almost a year just fine. I'm guessing that maybe JDTCompiler can't be loaded because a dependency it has on something can't be found.

I based my implementation on: http://mojo.codehaus.org/jspc/jspc-maven-plugin/usage.html , changing tomcat 6 to tomcat 5 and adding version because maven complained about requiring a version element.

I searched the web the last 2 days and didn't find anyone else having this problem. Which tells me a configuration/dependency issue on my end. But nothing has changed here.

And it isn't just my own development machine. The buildmachine (using Teamcity) is also failing with the same exact error.

Any ideas where to start looking? Are others seeing this behavior where jspc is suddenly failing?


Randy Eckhoff
Principal Engineer, Architect
GoFish Corporation
[EMAIL PROTECTED]
http://www.gofishcorp.com


Reply via email to